Snappy
Snappy是在谷歌內部生產環境中被許多項目使用的壓縮庫,包括BigTable,MapReduce和RPC等。谷歌表示算法庫針對性能做了調整,而不是針對壓縮比或與其他類似工具的兼容性。在Intel酷睿i7處理器上,其單核處理數據流的能力達到250M/s-500M/s。Snappy同時針對64位x86處理器進行了優化,在英特爾酷睿i7處理器單一核心實現了至少250MB/s的壓縮性能和500MB/ s的解壓縮性能。Snappy對於純文本的壓縮率為1.5-1.7,對於HTML是2-4,當然了對於JPEG、PNG和其他已經壓縮過的數據壓縮率為1.0。谷歌強勁吹捧Snappy的魯棒性,稱其是“即使面對損壞或惡意輸入也不會崩潰的設計”,並且在谷歌的生產環境中經過了PB級數據壓縮的考驗而穩定的。
官方網站:http://code.google.com/p/snappy/
FastLZ
FastLZ是一個高效的輕量級壓縮解壓庫,其官方測試數據如下表:
1GB文本數據測試:
LZO/miniLZO
LZO是一個開源的無損壓縮C語言庫,其優點是壓縮和解壓縮比較迅速占用內存小等特點(網絡傳輸希望的是壓縮和解壓縮速度比較快,壓縮率不用很高),其提供了比較全的LZO庫和一個精簡版的miniLZO庫,網上測試數據如下:
測試的時候使用bmp和文本文件,在X86的Linux虛擬機(單核256M內存,Debian 6.0 OS)上測試。
測試文件 |
原始大小 |
壓縮后大小 |
壓縮率 |
壓縮時間 |
解壓時間 |
1.bmp |
5292054 |
159395 |
3.01% |
9.174ms |
23.037ms |
2.bmp |
6912056 |
33806 |
0.489% |
8.33ms |
36.17ms |
3.bmp |
6220856 |
5101891 |
82% |
25.78ms |
28.43ms |
lzo.tar |
6645760 |
2457890 |
36.98% |
34.68ms |
38.62ms |
kdoc.tar |
16660480 |
6987402 |
41.93% |
102.86ms |
108.2ms |
kinc.tar |
18257920 |
5684927 |
31.13% |
106.87ms |
113.86ms |
來自《HBase: The Definitive Guide》中的一個對比:
Algorithm |
% remaining |
Encoding |
Decoding |
GZIP |
13.4% |
21 MB/s |
118 MB/s |
LZO |
20.5% |
135 MB/s |
410 MB/s |
Zippy/Snappy |
22.2% |
172 MB/s |
409 MB/s |