SnappySnappy是在谷歌内部生产环境中被许多项目使用的压缩库,包括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
free, open-source, portable real-time compression library
QuicklzQuicklz是一个高效的轻量级压缩解压库,其官方测试数据如下表:
LZO/miniLZOLZO是一个开源的无损压缩C语言库,其优点是压缩和解压缩比较迅速占用内存小等特点(网络传输希望的是压缩和解压缩速度比较快,压缩率不用很高),其提供了比较全的LZO库和一个精简版的miniLZO库,官方网站:http://www.oberhumer.com/opensource/lzo/
ZIP、 GZIP
计算机文件压缩算法,JDK中java.util.zip.*中实现。主要包括ZipInputStream/ ZipOutputStream、GZipInputStream/ ZipOutputStream。
LZF
采用类似lz77和lzss的混合编码,针对字符串压缩算法。
JZLIB
纯java的开源解压、压缩包,与JDK中ZLIB类似。
测试说明
1、版本:
ZIP、GZIP :JDK1.6版;QuickLZ: 1.5.0 final;Snappy:1.1.1.6
LZF:1.0.3;JZLIB:1.1.3
2、数据来源:从测试数据集中读取行数据后拼接成字符串,实际的数据中
包含字符、数字。
3、单位:
数据大小:byte
解压缩耗时:ms
4、测试机器配置:
笔记本,windows7 旗舰版
Intel(R) Core(TM) i5-2410M CPU @ 2.3GHz 2.3GHz
RAM: 6.00G 64位