Skip to content

Instantly share code, notes, and snippets.

@bmatsuo
Last active August 29, 2015 14:04
Show Gist options
  • Save bmatsuo/795301ba6d82860ef659 to your computer and use it in GitHub Desktop.
Save bmatsuo/795301ba6d82860ef659 to your computer and use it in GitHub Desktop.
go-snappystream benchmark comparisons for branch bmatsuo:snappy-go/optimize

Benchmarks were given two seconds to run. Allocations were recorded for each benchmark.

go test -test.benchtime=2s -test.benchmem=true -run=NONE -bench=. > [old,new].bench.txt

Benchmarks are compared with benchcmp

benchcmp old.bench.txt new.bench.txt
benchmark old ns/op new ns/op delta
BenchmarkWriterManpage 48143 45347 -5.81%
BenchmarkBufferedWriterManpage 67212 68084 +1.30%
BenchmarkWriterJSON 547070 472797 -13.58%
BenchmarkBufferedWriterJSON 547763 486920 -11.11%
BenchmarkWriterRandom 149835994 148316558 -1.01%
BenchmarkBufferedWriterRandom 141240824 138142676 -2.19%
BenchmarkWriterConstant 19097528 17322820 -9.29%
BenchmarkBufferedWriterConstant 18860174 17190379 -8.85%
BenchmarkReaderManpage 24353 24929 +2.37%
BenchmarkReaderManpage_buffered 24182 24847 +2.75%
BenchmarkReaderJSON 375854 374736 -0.30%
BenchmarkReaderJSON_buffered 413393 415685 +0.55%
BenchmarkReaderRandom 3109820 3092448 -0.56%
BenchmarkReaderRandom_buffered 3062793 3093059 +0.99%
BenchmarkReaderConstant 19223934 19143701 -0.42%
BenchmarkReaderConstant_buffered 19103961 19087946 -0.08%
benchmark old MB/s new MB/s speedup
BenchmarkWriterManpage 87.80 93.21 1.06x
BenchmarkBufferedWriterManpage 62.89 62.08 0.99x
BenchmarkWriterJSON 287.64 332.83 1.16x
BenchmarkBufferedWriterJSON 287.28 323.17 1.12x
BenchmarkWriterRandom 69.98 70.70 1.01x
BenchmarkBufferedWriterRandom 74.24 75.91 1.02x
BenchmarkWriterConstant 549.06 605.31 1.10x
BenchmarkBufferedWriterConstant 555.97 609.98 1.10x
BenchmarkReaderManpage 104.71 102.29 0.98x
BenchmarkReaderManpage_buffered 105.45 102.62 0.97x
BenchmarkReaderJSON 64.99 65.19 1.00x
BenchmarkReaderJSON_buffered 54.62 54.32 0.99x
BenchmarkReaderRandom 3372.65 3391.59 1.01x
BenchmarkReaderRandom_buffered 3424.01 3390.51 0.99x
BenchmarkReaderConstant 25.79 25.89 1.00x
BenchmarkReaderConstant_buffered 25.84 25.86 1.00x
benchmark old allocs new allocs delta
BenchmarkWriterManpage 6 6 +0.00%
BenchmarkBufferedWriterManpage 10 10 +0.00%
BenchmarkWriterJSON 10 6 -40.00%
BenchmarkBufferedWriterJSON 11 9 -18.18%
BenchmarkWriterRandom 326 6 -98.16%
BenchmarkBufferedWriterRandom 169 9 -94.67%
BenchmarkWriterConstant 326 6 -98.16%
BenchmarkBufferedWriterConstant 169 9 -94.67%
BenchmarkReaderManpage 7 7 +0.00%
BenchmarkReaderManpage_buffered 7 7 +0.00%
BenchmarkReaderJSON 10 10 +0.00%
BenchmarkReaderJSON_buffered 9 9 +0.00%
BenchmarkReaderRandom 7 7 +0.00%
BenchmarkReaderRandom_buffered 7 7 +0.00%
BenchmarkReaderConstant 7 7 +0.00%
BenchmarkReaderConstant_buffered 7 7 +0.00%
benchmark old bytes new bytes delta
BenchmarkWriterManpage 68606 62559 -8.81%
BenchmarkBufferedWriterManpage 160459 160459 +0.00%
BenchmarkWriterJSON 262777 78002 -70.32%
BenchmarkBufferedWriterJSON 299282 184594 -38.32%
BenchmarkWriterRandom 13688175 615373 -95.50%
BenchmarkBufferedWriterRandom 13753807 721966 -94.75%
BenchmarkWriterConstant 13198618 131716 -99.00%
BenchmarkBufferedWriterConstant 13270804 238307 -98.20%
BenchmarkReaderManpage 17688 17688 +0.00%
BenchmarkReaderManpage_buffered 17688 17688 +0.00%
BenchmarkReaderJSON 90132 90132 +0.00%
BenchmarkReaderJSON_buffered 158511 158511 +0.00%
BenchmarkReaderRandom 82199 82199 +0.00%
BenchmarkReaderRandom_buffered 147735 147734 -0.00%
BenchmarkReaderConstant 74006 74005 -0.00%
BenchmarkReaderConstant_buffered 139541 139541 +0.00%
@bmatsuo
Copy link
Author

bmatsuo commented Jul 26, 2014

The *WriterManpage* benchmarks have weird behavior. The number of allocations didn't change, and the performance numbers differ more than one would expect in this scenario.

Even more perplexing the *ReaderManpage* benchmarks exhibit performance differences, where nothing should have changed in the encoded output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment