36 lines
461 B
Go
36 lines
461 B
Go
|
package tun
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"math/rand"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func BenchmarkChecksum(b *testing.B) {
|
||
|
lengths := []int{
|
||
|
64,
|
||
|
128,
|
||
|
256,
|
||
|
512,
|
||
|
1024,
|
||
|
1500,
|
||
|
2048,
|
||
|
4096,
|
||
|
8192,
|
||
|
9000,
|
||
|
9001,
|
||
|
}
|
||
|
|
||
|
for _, length := range lengths {
|
||
|
b.Run(fmt.Sprintf("%d", length), func(b *testing.B) {
|
||
|
buf := make([]byte, length)
|
||
|
rng := rand.New(rand.NewSource(1))
|
||
|
rng.Read(buf)
|
||
|
b.ResetTimer()
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
checksum(buf, 0)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|