lib/bytesutil: add benchmarks for ToUnsafeString() and ToUnsafeBytes()

This commit is contained in:
Aliaksandr Valialkin 2023-05-10 12:57:01 -07:00
parent 0ccb7f51dd
commit 2ec17bed2c
No known key found for this signature in database
GPG Key ID: A72BEC6CD3D0DED1

View File

@ -0,0 +1,40 @@
package bytesutil
import (
"sync/atomic"
"testing"
)
func BenchmarkToUnsafeString(b *testing.B) {
buf := []byte("foobarbaz abcde fafdsfds")
b.ReportAllocs()
b.SetBytes(int64(len(buf)))
b.RunParallel(func (pb *testing.PB) {
n := 0
for pb.Next() {
for i := range buf {
s := ToUnsafeString(buf[:i])
n += len(s)
}
}
atomic.AddUint64(&Sink, uint64(n))
})
}
func BenchmarkToUnsafeBytes(b *testing.B) {
s := "foobarbaz abcde fafdsfds"
b.ReportAllocs()
b.SetBytes(int64(len(s)))
b.RunParallel(func (pb *testing.PB) {
n := 0
for pb.Next() {
for i := range s {
s := ToUnsafeBytes(s[:i])
n += len(s)
}
}
atomic.AddUint64(&Sink, uint64(n))
})
}
var Sink uint64