mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
name old time/op new time/op delta encoder_svarint/short-8 7.12ns ± 2% 6.24ns ± 2% -12.36% (p=0.000 n=10+9) encoder_svarint/medium-8 8.86ns ± 3% 7.82ns ± 2% -11.76% (p=0.000 n=10+10) encoder_svarint/large-8 12.2ns ± 1% 11.4ns ± 2% -5.99% (p=0.000 n=10+10) BTW, (*encoder).u32 and (*encoder).u64 can be inlined with go1.18
47 lines
882 B
Go
47 lines
882 B
Go
package binary
|
|
|
|
import (
|
|
"math"
|
|
"testing"
|
|
)
|
|
|
|
func benchEncoderUvarint(b *testing.B, v uint64) {
|
|
e := encoder{}
|
|
for i := 0; i < b.N; i++ {
|
|
e.Reset()
|
|
e.uvarint(v)
|
|
}
|
|
}
|
|
|
|
func benchEncoderSvarint(b *testing.B, v int64) {
|
|
e := encoder{}
|
|
for i := 0; i < b.N; i++ {
|
|
e.Reset()
|
|
e.svarint(v)
|
|
}
|
|
}
|
|
|
|
func Benchmark_encoder_uvarint(b *testing.B) {
|
|
b.Run("short", func(b *testing.B) {
|
|
benchEncoderUvarint(b, uint64(1))
|
|
})
|
|
b.Run("medium", func(b *testing.B) {
|
|
benchEncoderUvarint(b, uint64(114514))
|
|
})
|
|
b.Run("large", func(b *testing.B) {
|
|
benchEncoderUvarint(b, math.MaxUint64)
|
|
})
|
|
}
|
|
|
|
func Benchmark_encoder_svarint(b *testing.B) {
|
|
b.Run("short", func(b *testing.B) {
|
|
benchEncoderSvarint(b, int64(1))
|
|
})
|
|
b.Run("medium", func(b *testing.B) {
|
|
benchEncoderSvarint(b, int64(114514))
|
|
})
|
|
b.Run("large", func(b *testing.B) {
|
|
benchEncoderSvarint(b, math.MaxInt64)
|
|
})
|
|
}
|