...
1 package xxhash
2
3 import (
4 "strings"
5 "testing"
6 )
7
8 var benchmarks = []struct {
9 name string
10 n int64
11 }{
12 {"4B", 4},
13 {"16B", 16},
14 {"100B", 100},
15 {"4KB", 4e3},
16 {"10MB", 10e6},
17 }
18
19 func BenchmarkSum64(b *testing.B) {
20 for _, bb := range benchmarks {
21 in := make([]byte, bb.n)
22 for i := range in {
23 in[i] = byte(i)
24 }
25 b.Run(bb.name, func(b *testing.B) {
26 b.SetBytes(bb.n)
27 for i := 0; i < b.N; i++ {
28 _ = Sum64(in)
29 }
30 })
31 }
32 }
33
34 func BenchmarkSum64String(b *testing.B) {
35 for _, bb := range benchmarks {
36 s := strings.Repeat("a", int(bb.n))
37 b.Run(bb.name, func(b *testing.B) {
38 b.SetBytes(bb.n)
39 for i := 0; i < b.N; i++ {
40 _ = Sum64String(s)
41 }
42 })
43 }
44 }
45
46 func BenchmarkDigestBytes(b *testing.B) {
47 for _, bb := range benchmarks {
48 in := make([]byte, bb.n)
49 for i := range in {
50 in[i] = byte(i)
51 }
52 b.Run(bb.name, func(b *testing.B) {
53 b.SetBytes(bb.n)
54 for i := 0; i < b.N; i++ {
55 h := New()
56 h.Write(in)
57 _ = h.Sum64()
58 }
59 })
60 }
61 }
62
63 func BenchmarkDigestString(b *testing.B) {
64 for _, bb := range benchmarks {
65 s := strings.Repeat("a", int(bb.n))
66 b.Run(bb.name, func(b *testing.B) {
67 b.SetBytes(bb.n)
68 for i := 0; i < b.N; i++ {
69 h := New()
70 h.WriteString(s)
71 _ = h.Sum64()
72 }
73 })
74 }
75 }
76
View as plain text