]> Cypherpunks repositories - gostls13.git/commitdiff
compress/flate: take NewWriter out of the benchmark loop.
authorNigel Tao <nigeltao@golang.org>
Wed, 9 Mar 2016 03:33:28 +0000 (14:33 +1100)
committerNigel Tao <nigeltao@golang.org>
Wed, 9 Mar 2016 04:40:40 +0000 (04:40 +0000)
This helps follow-up CLs ensure that the encoding's core computation does not
allocate. It is a separate CL because it has a non-trivial effect on the
benchmark numbers, even if it's purely an accounting change and not a change to
the underlying performance:

BenchmarkEncodeDigitsSpeed1e4-4        5.65         19.31        3.42x
BenchmarkEncodeDigitsSpeed1e5-4        17.23        26.79        1.55x
BenchmarkEncodeDigitsSpeed1e6-4        26.85        27.51        1.02x
BenchmarkEncodeDigitsDefault1e4-4      4.41         13.21        3.00x
BenchmarkEncodeDigitsDefault1e5-4      5.64         6.28         1.11x
BenchmarkEncodeDigitsDefault1e6-4      5.54         5.65         1.02x
BenchmarkEncodeDigitsCompress1e4-4     4.31         13.15        3.05x
BenchmarkEncodeDigitsCompress1e5-4     5.52         5.91         1.07x
BenchmarkEncodeDigitsCompress1e6-4     5.38         5.63         1.05x
BenchmarkEncodeTwainSpeed1e4-4         5.45         19.06        3.50x
BenchmarkEncodeTwainSpeed1e5-4         17.30        29.25        1.69x
BenchmarkEncodeTwainSpeed1e6-4         28.06        30.86        1.10x
BenchmarkEncodeTwainDefault1e4-4       4.06         12.36        3.04x
BenchmarkEncodeTwainDefault1e5-4       6.15         7.62         1.24x
BenchmarkEncodeTwainDefault1e6-4       6.84         6.99         1.02x
BenchmarkEncodeTwainCompress1e4-4      4.06         12.27        3.02x
BenchmarkEncodeTwainCompress1e5-4      5.29         5.92         1.12x
BenchmarkEncodeTwainCompress1e6-4      5.24         5.29         1.01x

Change-Id: I7d32866b7e2d478b0154332c1edeefe339af9a28
Reviewed-on: https://go-review.googlesource.com/20467
Reviewed-by: David Symonds <dsymonds@golang.org>
src/compress/flate/writer_test.go

index 58431774e0e3c2e77dc536704fe81519c986c8c3..85101afafbed4157f69ea8a5f08a9aa247e75e77 100644 (file)
@@ -28,13 +28,14 @@ func benchmarkEncoder(b *testing.B, testfile, level, n int) {
                copy(buf1[i:], buf0)
        }
        buf0 = nil
+       w, err := NewWriter(ioutil.Discard, level)
+       if err != nil {
+               b.Fatal(err)
+       }
        runtime.GC()
        b.StartTimer()
        for i := 0; i < b.N; i++ {
-               w, err := NewWriter(ioutil.Discard, level)
-               if err != nil {
-                       b.Fatal(err)
-               }
+               w.Reset(ioutil.Discard)
                w.Write(buf1)
                w.Close()
        }