...

Source file src/github.com/cespare/xxhash/v2/bench_test.go

Documentation: github.com/cespare/xxhash/v2

     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