snappy,lz4 的对比
1.介绍
bzip2:一个完全免费,免费专利和高质量的数据压缩
LZ4 :非常快速的压缩算法
LZHAM :无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。
LZMA :7z格式默认和通用的压缩方法。
LZMAT :及其快速的实时无损数据压缩库
Snappy :快速压缩和解压缩
ZLib :非常紧凑的数据流压缩库
ZZIPlib:提供ZIP归档的读权限
这里主要看看snappy 和LZ4 的对比
原文地址:https://www.percona.com/blog/2016/04/13/evaluating-database-compression-methods-update/
2.压缩和解压的速度比对
可以看出:lz4 最快,snappy 第二
2.压缩比例
可以看出:lzma 压缩比最高,毕竟是最慢的, lz4 , snappy ,QuickLZ 相当
3.压缩和解压缩
可以看出: lz4 解压和压缩都比较高,snappy 表现一般
4.压缩速度和 文件块块 压缩速度对比
可以看出:lz4 最佳压缩块是64KB , snappy 变化并不大
5. 压缩速度 和 文件大小 对比
可以看出:LZ4 的压缩速度 850M/S 最快,snappy 第二
6. 各版本的差异对比
测试代码:https://github.com/inikep/lzbench
lz4 1.7.5 | 452 MB/s | 2244 MB/s | 100880800 | 47.60 |
lz4fast 1.7.5 -3 | 522 MB/s | 2244 MB/s | 107066190 | 50.52 |
lz4fast 1.7.5 -17 | 785 MB/s | 2601 MB/s | 131732802 | 62.15 |
lz4hc 1.7.5 -1 | 100 MB/s | 2056 MB/s | 87591763 | 41.33 |
lz4hc 1.7.5 -4 | 56 MB/s | 2200 MB/s | 79807909 | 37.65 |
lz4hc 1.7.5 -9 | 23 MB/s | 2253 MB/s | 77892285 | 36.75 |
lz4hc 1.7.5 -12 | 3.52 MB/s | 2281 MB/s | 77268977 | 36.46 |
snappy 1.1.4 | 327 MB/s | 1075 MB/s | 102146767 | 48.19 |
小结:
1.snappy 从各个方面是相对均衡的压缩算法,使用场景比较多
2.lz4 是了解到各方面都比较优越的算法,能用的地方可以参考上面的表,进行选择。但是hbase 由于许可证的原因,至少目前用不了这个东西
3.当然还有其他的 lzo,gz,zlib 等等,相比上面两种来说要差一些,当然特殊场景下可以择优选取,但是通用场景选 snappy 或者 lz4 是比较不错的。
参考别人的结果:http://developer.51cto.com/art/201501/463096.htm
参考压缩结果:http://java-performance.info/performance-general-compression/
上一篇: js实现无缝轮播图特效