]> Cypherpunks repositories - gostls13.git/commitdiff
hash/maphash: adding benchmarks for maphash
authorMeng Zhuo <mzh@golangcn.org>
Fri, 21 Aug 2020 03:11:32 +0000 (11:11 +0800)
committerKeith Randall <khr@golang.org>
Fri, 21 Aug 2020 05:30:14 +0000 (05:30 +0000)
goos: linux
goarch: arm64
pkg: hash/maphash
BenchmarkHash8Bytes
BenchmarkHash8Bytes     22568919                46.0 ns/op       173.80 MB/s
BenchmarkHash320Bytes
BenchmarkHash320Bytes    5243858               230 ns/op        1393.30 MB/s
BenchmarkHash1K
BenchmarkHash1K          1755870               660 ns/op        1550.60 MB/s
BenchmarkHash8K
BenchmarkHash8K           225688              5313 ns/op        1541.90 MB/s
PASS
ok      hash/maphash    6.465s

Change-Id: I5a909042a542135ebc47d639fea02dc46c900c1c
Reviewed-on: https://go-review.googlesource.com/c/go/+/249079
Run-TryBot: Meng Zhuo <mzh@golangcn.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/hash/maphash/maphash_test.go

index caea43a8c83bff0c10f7479b3f3a7028e8c4ca92..daf6eb478662262fb4406768e6bea075eea483b1 100644 (file)
@@ -165,3 +165,32 @@ func TestSeedFromReset(t *testing.T) {
 // Make sure a Hash implements the hash.Hash and hash.Hash64 interfaces.
 var _ hash.Hash = &Hash{}
 var _ hash.Hash64 = &Hash{}
+
+func benchmarkSize(b *testing.B, size int) {
+       h := &Hash{}
+       buf := make([]byte, size)
+       b.SetBytes(int64(size))
+       b.ResetTimer()
+
+       for i := 0; i < b.N; i++ {
+               h.Reset()
+               h.Write(buf)
+               h.Sum64()
+       }
+}
+
+func BenchmarkHash8Bytes(b *testing.B) {
+       benchmarkSize(b, 8)
+}
+
+func BenchmarkHash320Bytes(b *testing.B) {
+       benchmarkSize(b, 320)
+}
+
+func BenchmarkHash1K(b *testing.B) {
+       benchmarkSize(b, 1024)
+}
+
+func BenchmarkHash8K(b *testing.B) {
+       benchmarkSize(b, 8192)
+}