diff --git a/convert.go b/convert.go index aff392d..27828ec 100644 --- a/convert.go +++ b/convert.go @@ -13,11 +13,11 @@ import ( "unsafe" ) -const MaxStringLen = 0x7fff0000 // Maximum string length for UnsafeBytes. (decimal: 2147418112) - // #nosec G103 // UnsafeString returns a string pointer without allocation func UnsafeString(b []byte) string { + // the new way is slower `return unsafe.String(unsafe.SliceData(b), len(b))` + // unsafe.Pointer variant: 0.5410 ns/op vs unsafe.String variant: 0.3538 ns/op return *(*string)(unsafe.Pointer(&b)) }