• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

cmd/snappytool/H03-Nov-2020-

misc/H03-Nov-2020-

testdata/H03-May-2022-

.gitignoreH A D03-Nov-2020363

AUTHORSH A D03-Nov-2020533

CONTRIBUTORSH A D03-Nov-20201.5 KiB

LICENSEH A D03-Nov-20201.5 KiB

READMEH A D03-Nov-20203.5 KiB

decode.goH A D03-Nov-20206 KiB

decode_amd64.sH A D03-Nov-202011.8 KiB

decode_arm64.sH A D03-Nov-202012 KiB

decode_asm.goH A D03-Nov-2020363

decode_other.goH A D03-Nov-20203.4 KiB

encode.goH A D03-Nov-20209.1 KiB

encode_amd64.sH A D03-Nov-202015.9 KiB

encode_arm64.sH A D03-Nov-202015.8 KiB

encode_asm.goH A D03-Nov-2020742

encode_other.goH A D03-Nov-20208 KiB

go.modH A D03-Nov-202032

golden_test.goH A D03-Nov-202041.9 KiB

snappy.goH A D03-Nov-20203.9 KiB

snappy_test.goH A D03-Nov-202038.8 KiB

README

1The Snappy compression format in the Go programming language.
2
3To download and install from source:
4$ go get github.com/golang/snappy
5
6Unless otherwise noted, the Snappy-Go source files are distributed
7under the BSD-style license found in the LICENSE file.
8
9
10
11Benchmarks.
12
13The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten
14or so files, the same set used by the C++ Snappy code (github.com/google/snappy
15and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @
163.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
78For comparison (Go's encoded output is byte-for-byte identical to C++'s), here
79are the numbers from C++ Snappy's
80
81make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log
82
83BM_UFlat/0     2.4GB/s  html
84BM_UFlat/1     1.4GB/s  urls
85BM_UFlat/2    21.8GB/s  jpg
86BM_UFlat/3     1.5GB/s  jpg_200
87BM_UFlat/4    13.3GB/s  pdf
88BM_UFlat/5     2.1GB/s  html4
89BM_UFlat/6     1.0GB/s  txt1
90BM_UFlat/7   959.4MB/s  txt2
91BM_UFlat/8     1.0GB/s  txt3
92BM_UFlat/9   864.5MB/s  txt4
93BM_UFlat/10    2.9GB/s  pb
94BM_UFlat/11    1.2GB/s  gaviota
95
96BM_ZFlat/0   944.3MB/s  html (22.31 %)
97BM_ZFlat/1   501.6MB/s  urls (47.78 %)
98BM_ZFlat/2    14.3GB/s  jpg (99.95 %)
99BM_ZFlat/3   538.3MB/s  jpg_200 (73.00 %)
100BM_ZFlat/4     8.3GB/s  pdf (83.30 %)
101BM_ZFlat/5   903.5MB/s  html4 (22.52 %)
102BM_ZFlat/6   336.0MB/s  txt1 (57.88 %)
103BM_ZFlat/7   312.3MB/s  txt2 (61.91 %)
104BM_ZFlat/8   353.1MB/s  txt3 (54.99 %)
105BM_ZFlat/9   289.9MB/s  txt4 (66.26 %)
106BM_ZFlat/10    1.2GB/s  pb (19.68 %)
107BM_ZFlat/11  527.4MB/s  gaviota (37.72 %)
108