From 08e311195dbf49d23826a760b815e89d26ec94b5 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Sun, 16 Aug 2015 14:49:58 -0400 Subject: [PATCH] stream: adding a benchmark Based on stdlib's `sha256`. Initial output: BenchmarkHash8Bytes 100000 20387 ns/op 0.39 MB/s BenchmarkHash1K 50000 25876 ns/op 39.57 MB/s BenchmarkHash8K 50000 38836 ns/op 210.94 MB/s --- stream_test.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/stream_test.go b/stream_test.go index 748ff2c..5d8dea7 100644 --- a/stream_test.go +++ b/stream_test.go @@ -136,3 +136,28 @@ func TestMerkleHashWriter(t *testing.T) { } } + +var bench = NewHash(DefaultHashMaker, 8192) +var buf = make([]byte, 8192) + +func benchmarkSize(b *testing.B, size int) { + b.SetBytes(int64(size)) + sum := make([]byte, bench.Size()) + for i := 0; i < b.N; i++ { + bench.Reset() + bench.Write(buf[:size]) + bench.Sum(sum[:0]) + } +} + +func BenchmarkHash8Bytes(b *testing.B) { + benchmarkSize(b, 8) +} + +func BenchmarkHash1K(b *testing.B) { + benchmarkSize(b, 1024) +} + +func BenchmarkHash8K(b *testing.B) { + benchmarkSize(b, 8192) +}