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是一个高效的轻量级压缩解压库,其官方测试数据如下表:
FastLZ 压缩 10 亿字节的文本文件,更多内容请看基准测试结果。
支持 Microsoft Windows, Linux,其他 Unix 系统,甚至是 DOS。在 x86, Itanium 和 UltraSPARC 机器上也能运行的很好。
官方网站: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 |
官方网站:http://www.oberhumer.com/opensource/lzo/
来自《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 |