⼏个常⽤快速⽆损压缩算法性能⽐较
⼏个常⽤快速⽆损压缩算法性能⽐较
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级数据压缩的考验⽽稳定的。
官⽅⽹站:
FastLZ
FastLZ是⼀个⾼效的轻量级压缩解压库,其官⽅测试数据如下表:
1GB⽂本数据测试:
官⽅⽹站:
LZO/miniLZO
hbase为什么查询快LZO是⼀个开源的⽆损压缩C语⾔库,其优点是压缩和解压缩⽐较迅速占⽤内存⼩等特点(⽹络传输希望的是压缩和解压缩速度⽐较快,压缩率不⽤很⾼),其提供了⽐较全的LZO库和⼀个精简版的miniLZO库,如下:
测试的时候使⽤bmp和⽂本⽂件,在X86的Linux虚拟机(单核256M内存,Debian 6.0 OS)上测试。
测试⽂件原始⼤⼩压缩后⼤⼩压缩率压缩时间解压时间
1.bmp    5292054 159395  3.01%9.174ms23.037ms
2.bmp    6912056 33806    0.489%8.33ms36.17ms
3.bmp    6220856 5101891 82%25.78ms28.43ms
lzo.tar6645760 2457890 36.98%34.68ms38.62ms
kdoc.tar16660480698740241.93%102.86ms108.2ms
kinc.tar182579205684927 31.13%  106.87ms113.86ms
官⽅⽹站:
来⾃《HBase: The Definitive Guide》中的⼀个对⽐:
Algorithm% remaining Encoding Decoding
GZIP13.4%21 MB/s118 MB/s
LZO20.5%135 MB/s410 MB/s
Zippy/Snappy22.2%172 MB/s409 MB/s

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。