Jelajahi Sumber

Add some benchmark numbers to the README.

Nigel Tao 9 tahun lalu
induk
melakukan
b62d312cd2
1 mengubah file dengan 100 tambahan dan 0 penghapusan
  1. 100 0
      README

+ 100 - 0
README

@@ -5,3 +5,103 @@ $ go get github.com/golang/snappy
 
 Unless otherwise noted, the Snappy-Go source files are distributed
 under the BSD-style license found in the LICENSE file.
+
+
+
+Benchmarks.
+
+The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten
+or so files, the same set used by the C++ Snappy code (github.com/google/snappy
+and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @
+3.40GHz", Go's GOARCH=amd64 numbers as of 2016-04-29:
+
+"go test -test.bench=."
+
+_UFlat0-8         2.23GB/s ± 1%  html
+_UFlat1-8         1.43GB/s ± 0%  urls
+_UFlat2-8         23.7GB/s ± 1%  jpg
+_UFlat3-8         1.93GB/s ± 0%  jpg_200
+_UFlat4-8         13.9GB/s ± 2%  pdf
+_UFlat5-8         2.00GB/s ± 0%  html4
+_UFlat6-8          829MB/s ± 0%  txt1
+_UFlat7-8          799MB/s ± 0%  txt2
+_UFlat8-8          871MB/s ± 0%  txt3
+_UFlat9-8          730MB/s ± 0%  txt4
+_UFlat10-8        2.87GB/s ± 0%  pb
+_UFlat11-8        1.07GB/s ± 0%  gaviota
+
+_ZFlat0-8         1.04GB/s ± 0%  html
+_ZFlat1-8          536MB/s ± 0%  urls
+_ZFlat2-8         16.3GB/s ± 2%  jpg
+_ZFlat3-8          762MB/s ± 0%  jpg_200
+_ZFlat4-8         9.48GB/s ± 1%  pdf
+_ZFlat5-8          990MB/s ± 0%  html4
+_ZFlat6-8          381MB/s ± 0%  txt1
+_ZFlat7-8          353MB/s ± 0%  txt2
+_ZFlat8-8          398MB/s ± 0%  txt3
+_ZFlat9-8          329MB/s ± 0%  txt4
+_ZFlat10-8        1.35GB/s ± 1%  pb
+_ZFlat11-8         608MB/s ± 0%  gaviota
+
+
+
+"go test -test.bench=. -tags=noasm"
+
+_UFlat0-8          637MB/s ± 0%  html
+_UFlat1-8          506MB/s ± 0%  urls
+_UFlat2-8         23.0GB/s ± 5%  jpg
+_UFlat3-8         1.17GB/s ± 0%  jpg_200
+_UFlat4-8         4.44GB/s ± 1%  pdf
+_UFlat5-8          623MB/s ± 0%  html4
+_UFlat6-8          300MB/s ± 1%  txt1
+_UFlat7-8          293MB/s ± 0%  txt2
+_UFlat8-8          316MB/s ± 0%  txt3
+_UFlat9-8          285MB/s ± 0%  txt4
+_UFlat10-8         768MB/s ± 0%  pb
+_UFlat11-8         406MB/s ± 1%  gaviota
+
+_ZFlat0-8          411MB/s ± 1%  html
+_ZFlat1-8          250MB/s ± 1%  urls
+_ZFlat2-8         12.7GB/s ± 1%  jpg
+_ZFlat3-8          157MB/s ± 0%  jpg_200
+_ZFlat4-8         2.95GB/s ± 0%  pdf
+_ZFlat5-8          406MB/s ± 0%  html4
+_ZFlat6-8          182MB/s ± 0%  txt1
+_ZFlat7-8          173MB/s ± 1%  txt2
+_ZFlat8-8          191MB/s ± 0%  txt3
+_ZFlat9-8          166MB/s ± 0%  txt4
+_ZFlat10-8         480MB/s ± 0%  pb
+_ZFlat11-8         272MB/s ± 0%  gaviota
+
+
+
+For comparison (Go's encoded output is byte-for-byte identical to C++'s), here
+are the numbers from C++ Snappy's
+
+make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log
+
+BM_UFlat/0     2.4GB/s  html
+BM_UFlat/1     1.4GB/s  urls
+BM_UFlat/2    21.8GB/s  jpg
+BM_UFlat/3     1.5GB/s  jpg_200
+BM_UFlat/4    13.3GB/s  pdf
+BM_UFlat/5     2.1GB/s  html4
+BM_UFlat/6     1.0GB/s  txt1
+BM_UFlat/7   959.4MB/s  txt2
+BM_UFlat/8     1.0GB/s  txt3
+BM_UFlat/9   864.5MB/s  txt4
+BM_UFlat/10    2.9GB/s  pb
+BM_UFlat/11    1.2GB/s  gaviota
+
+BM_ZFlat/0   944.3MB/s  html (22.31 %)
+BM_ZFlat/1   501.6MB/s  urls (47.78 %)
+BM_ZFlat/2    14.3GB/s  jpg (99.95 %)
+BM_ZFlat/3   538.3MB/s  jpg_200 (73.00 %)
+BM_ZFlat/4     8.3GB/s  pdf (83.30 %)
+BM_ZFlat/5   903.5MB/s  html4 (22.52 %)
+BM_ZFlat/6   336.0MB/s  txt1 (57.88 %)
+BM_ZFlat/7   312.3MB/s  txt2 (61.91 %)
+BM_ZFlat/8   353.1MB/s  txt3 (54.99 %)
+BM_ZFlat/9   289.9MB/s  txt4 (66.26 %)
+BM_ZFlat/10    1.2GB/s  pb (19.68 %)
+BM_ZFlat/11  527.4MB/s  gaviota (37.72 %)