github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/lib/others/snappy/README (about) 1 The Snappy compression format in the Go programming language. 2 3 To download and install from source: 4 $ go get github.com/golang/snappy 5 6 Unless otherwise noted, the Snappy-Go source files are distributed 7 under the BSD-style license found in the LICENSE file. 8 9 10 11 Benchmarks. 12 13 The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten 14 or so files, the same set used by the C++ Snappy code (github.com/google/snappy 15 and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @ 16 3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29: 17 18 "go test -test.bench=." 19 20 _UFlat0-8 2.19GB/s ± 0% html 21 _UFlat1-8 1.41GB/s ± 0% urls 22 _UFlat2-8 23.5GB/s ± 2% jpg 23 _UFlat3-8 1.91GB/s ± 0% jpg_200 24 _UFlat4-8 14.0GB/s ± 1% pdf 25 _UFlat5-8 1.97GB/s ± 0% html4 26 _UFlat6-8 814MB/s ± 0% txt1 27 _UFlat7-8 785MB/s ± 0% txt2 28 _UFlat8-8 857MB/s ± 0% txt3 29 _UFlat9-8 719MB/s ± 1% txt4 30 _UFlat10-8 2.84GB/s ± 0% pb 31 _UFlat11-8 1.05GB/s ± 0% gaviota 32 33 _ZFlat0-8 1.04GB/s ± 0% html 34 _ZFlat1-8 534MB/s ± 0% urls 35 _ZFlat2-8 15.7GB/s ± 1% jpg 36 _ZFlat3-8 740MB/s ± 3% jpg_200 37 _ZFlat4-8 9.20GB/s ± 1% pdf 38 _ZFlat5-8 991MB/s ± 0% html4 39 _ZFlat6-8 379MB/s ± 0% txt1 40 _ZFlat7-8 352MB/s ± 0% txt2 41 _ZFlat8-8 396MB/s ± 1% txt3 42 _ZFlat9-8 327MB/s ± 1% txt4 43 _ZFlat10-8 1.33GB/s ± 1% pb 44 _ZFlat11-8 605MB/s ± 1% gaviota 45 46 47 48 "go test -test.bench=. -tags=noasm" 49 50 _UFlat0-8 621MB/s ± 2% html 51 _UFlat1-8 494MB/s ± 1% urls 52 _UFlat2-8 23.2GB/s ± 1% jpg 53 _UFlat3-8 1.12GB/s ± 1% jpg_200 54 _UFlat4-8 4.35GB/s ± 1% pdf 55 _UFlat5-8 609MB/s ± 0% html4 56 _UFlat6-8 296MB/s ± 0% txt1 57 _UFlat7-8 288MB/s ± 0% txt2 58 _UFlat8-8 309MB/s ± 1% txt3 59 _UFlat9-8 280MB/s ± 1% txt4 60 _UFlat10-8 753MB/s ± 0% pb 61 _UFlat11-8 400MB/s ± 0% gaviota 62 63 _ZFlat0-8 409MB/s ± 1% html 64 _ZFlat1-8 250MB/s ± 1% urls 65 _ZFlat2-8 12.3GB/s ± 1% jpg 66 _ZFlat3-8 132MB/s ± 0% jpg_200 67 _ZFlat4-8 2.92GB/s ± 0% pdf 68 _ZFlat5-8 405MB/s ± 1% html4 69 _ZFlat6-8 179MB/s ± 1% txt1 70 _ZFlat7-8 170MB/s ± 1% txt2 71 _ZFlat8-8 189MB/s ± 1% txt3 72 _ZFlat9-8 164MB/s ± 1% txt4 73 _ZFlat10-8 479MB/s ± 1% pb 74 _ZFlat11-8 270MB/s ± 1% gaviota 75 76 77 78 For comparison (Go's encoded output is byte-for-byte identical to C++'s), here 79 are the numbers from C++ Snappy's 80 81 make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log 82 83 BM_UFlat/0 2.4GB/s html 84 BM_UFlat/1 1.4GB/s urls 85 BM_UFlat/2 21.8GB/s jpg 86 BM_UFlat/3 1.5GB/s jpg_200 87 BM_UFlat/4 13.3GB/s pdf 88 BM_UFlat/5 2.1GB/s html4 89 BM_UFlat/6 1.0GB/s txt1 90 BM_UFlat/7 959.4MB/s txt2 91 BM_UFlat/8 1.0GB/s txt3 92 BM_UFlat/9 864.5MB/s txt4 93 BM_UFlat/10 2.9GB/s pb 94 BM_UFlat/11 1.2GB/s gaviota 95 96 BM_ZFlat/0 944.3MB/s html (22.31 %) 97 BM_ZFlat/1 501.6MB/s urls (47.78 %) 98 BM_ZFlat/2 14.3GB/s jpg (99.95 %) 99 BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %) 100 BM_ZFlat/4 8.3GB/s pdf (83.30 %) 101 BM_ZFlat/5 903.5MB/s html4 (22.52 %) 102 BM_ZFlat/6 336.0MB/s txt1 (57.88 %) 103 BM_ZFlat/7 312.3MB/s txt2 (61.91 %) 104 BM_ZFlat/8 353.1MB/s txt3 (54.99 %) 105 BM_ZFlat/9 289.9MB/s txt4 (66.26 %) 106 BM_ZFlat/10 1.2GB/s pb (19.68 %) 107 BM_ZFlat/11 527.4MB/s gaviota (37.72 %)