VictoriaMetrics/lib/bytesutil/bytesutil_timing_test.go
2023-05-10 20:29:15 -07:00

40 lines
707 B
Go

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