幾個常用快速無損壓縮算法性能比較


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文本數據測試:
 

幾個常用快速無損壓縮算法性能比較

 

官方網站:http://www.quicklz.com/

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM