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 %)