]> Cypherpunks repositories - gostls13.git/commitdiff
crypto: use better hash benchmarks
authorEric Roshan-Eisner <eric.d.eisner@gmail.com>
Thu, 1 Nov 2012 20:21:18 +0000 (16:21 -0400)
committerAdam Langley <agl@golang.org>
Thu, 1 Nov 2012 20:21:18 +0000 (16:21 -0400)
Labels the existing benchmark as stream, and add benchmarks that
compute the checksum.

R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/6814060

src/pkg/crypto/md5/md5_test.go
src/pkg/crypto/sha1/sha1_test.go
src/pkg/crypto/sha256/sha256_test.go
src/pkg/crypto/sha512/sha512_test.go

index b474a90d5a3c4a341c17b1de1d8101f623950860..c810251ff2844c2eb7b77ca4b87b38b6f3bdf6e3 100644 (file)
@@ -80,26 +80,26 @@ func ExampleNew() {
 }
 
 var bench = md5.New()
-var buf = makeBuf()
+var buf = make([]byte, 8192)
 
-func makeBuf() []byte {
-       b := make([]byte, 8<<10)
-       for i := range b {
-               b[i] = byte(i)
+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])
        }
-       return b
+}
+
+func BenchmarkHash8Bytes(b *testing.B) {
+       benchmarkSize(b, 8)
 }
 
 func BenchmarkHash1K(b *testing.B) {
-       b.SetBytes(1024)
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf[:1024])
-       }
+       benchmarkSize(b, 1024)
 }
 
 func BenchmarkHash8K(b *testing.B) {
-       b.SetBytes(int64(len(buf)))
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf)
-       }
+       benchmarkSize(b, 8192)
 }
index e3d03e52a31a0b06e307907b3e437986aaa4188a..58541127784d14ffff77314dfb2ed15d3ad9b7db 100644 (file)
@@ -81,26 +81,26 @@ func ExampleNew() {
 }
 
 var bench = sha1.New()
-var buf = makeBuf()
+var buf = make([]byte, 8192)
 
-func makeBuf() []byte {
-       b := make([]byte, 8<<10)
-       for i := range b {
-               b[i] = byte(i)
+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])
        }
-       return b
+}
+
+func BenchmarkHash8Bytes(b *testing.B) {
+       benchmarkSize(b, 8)
 }
 
 func BenchmarkHash1K(b *testing.B) {
-       b.SetBytes(1024)
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf[:1024])
-       }
+       benchmarkSize(b, 1024)
 }
 
 func BenchmarkHash8K(b *testing.B) {
-       b.SetBytes(int64(len(buf)))
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf)
-       }
+       benchmarkSize(b, 8192)
 }
index 8e66b4b306d6442e96b74c22b62c2442747e07b6..29bf1619aeb81ade899f9eb1e75be705e23522cb 100644 (file)
@@ -125,26 +125,26 @@ func TestGolden(t *testing.T) {
 }
 
 var bench = New()
-var buf = makeBuf()
+var buf = make([]byte, 8192)
 
-func makeBuf() []byte {
-       b := make([]byte, 8<<10)
-       for i := range b {
-               b[i] = byte(i)
+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])
        }
-       return b
+}
+
+func BenchmarkHash8Bytes(b *testing.B) {
+       benchmarkSize(b, 8)
 }
 
 func BenchmarkHash1K(b *testing.B) {
-       b.SetBytes(1024)
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf[:1024])
-       }
+       benchmarkSize(b, 1024)
 }
 
 func BenchmarkHash8K(b *testing.B) {
-       b.SetBytes(int64(len(buf)))
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf)
-       }
+       benchmarkSize(b, 8192)
 }
index 977655ddb4103fb99e102b3ca72144811e41f956..6eafb1b5fa9136cd7db51c3f3b3278f1e44f1506 100644 (file)
@@ -125,26 +125,26 @@ func TestGolden(t *testing.T) {
 }
 
 var bench = New()
-var buf = makeBuf()
+var buf = make([]byte, 8192)
 
-func makeBuf() []byte {
-       b := make([]byte, 8<<10)
-       for i := range b {
-               b[i] = byte(i)
+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])
        }
-       return b
+}
+
+func BenchmarkHash8Bytes(b *testing.B) {
+       benchmarkSize(b, 8)
 }
 
 func BenchmarkHash1K(b *testing.B) {
-       b.SetBytes(1024)
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf[:1024])
-       }
+       benchmarkSize(b, 1024)
 }
 
 func BenchmarkHash8K(b *testing.B) {
-       b.SetBytes(int64(len(buf)))
-       for i := 0; i < b.N; i++ {
-               bench.Write(buf)
-       }
+       benchmarkSize(b, 8192)
 }