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/
相关推荐
该库包含 用纯 Java 编写的LZ4、 Zstandard (Zstd)、 Snappy和 LZO的实现。它们通常比本地库的 JNI 包装器快 10-40%。 Hadoop 压缩编解码器 除了原始块编码器之外,每个算法都有 Hadoop CompressionCodec 的实现。...
标题中的"source_lzo_lz_snappy1.rar"暗示了这个压缩包可能包含了与数据压缩相关的源代码或库,特别是LZO、LZ和Snappy这三种不同的压缩算法。LZO(Lempel-Ziv-Oberhumer)是一种快速但压缩率较低的压缩算法,适用于...
LZ4 (r59) 2.084 330 915 LZO 2.05 1x_1 2.038 311 480 QuickLZ 1.5 -1 2.233 257 277 Snappy 1.0.5 2.024 227 729 LZF 2.076 197 465 FastLZ 2.030 190 420 zlib 1.2.5 -1 2.728 39 195 LZ4 HC (r66) 2.712...
4. **应用场景**: - **大数据处理**:Snappy常被Hadoop、Spark等大数据框架用于中间数据的压缩,以减少I/O开销。 - **数据库系统**:例如,Google的Bigtable和Apache Cassandra都使用Snappy压缩存储数据。 - **...
4. 使用Snappy提供的API进行数据的压缩和解压缩操作,例如`snappy::Compress`和`snappy::Uncompress`函数。 在实际开发中,为了确保跨平台兼容性,开发者可能会选择使用CMake等构建工具来管理依赖和编译过程,尤其...
4. **Snappy的特性**: - 高速压缩和解压缩:Snappy的突出特点是快速,尤其在处理大量数据时。 - 低压缩率:相比其他高级压缩算法,Snappy的压缩比例较低,但能保证处理速度。 - 适合流式处理:Snappy可以有效地...
4. Snappy.h:这是Snappy库的主要头文件,提供了对外的API接口,供用户在自己的代码中调用Snappy的功能。 5. Snappy-internal.h:可能包含了库内部使用的辅助结构和函数,不建议用户直接使用。 6. Snappy-sinksource...
Snappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable ...
赠送jar包:snappy-java-1.1.8.2.jar; 赠送原API文档:snappy-java-1.1.8.2-javadoc.jar; 赠送源代码:snappy-java-1.1.8.2-sources.jar; 赠送Maven依赖信息文件:snappy-java-1.1.8.2.pom; 包含翻译后的API文档...
4. **测试验证**:完成安装后,通过Hadoop命令行工具进行测试,如`hadoop fs -text`或`hadoop fs -cat`,检查Snappy压缩文件是否能正常读取。 总之,"hadoop3.x带snappy(可用于windows本地开发)"是一个专为Windows...
Snappy(旧称:Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源。其目标并非最大压缩率或与其他压缩程序的兼容性,而是非常高的速度和合理的压缩率。使用一个运行在64位模式...
Snappy库是一个高效的数据压缩和解压缩库,主要由Google开发,用于提高大...如果需要更高的压缩比,可以考虑使用其他如gzip或lz4等压缩库。在选择压缩库时,应根据具体需求权衡压缩效率、解压缩速度和压缩比等因素。
4. 配置CMake:Caffe通常使用CMake进行跨平台的构建配置。在CMake中,需要指定各个依赖库的路径,包括Snappy的头文件和库文件位置。 5. 构建项目:使用CMake生成解决方案文件,然后在Visual Studio中打开并编译项目...
4. **配置灵活**:Snappy允许设置各种转换参数,如纸张大小、页面方向、图像质量等,以满足不同的需求。 5. **错误处理**:当转换过程中出现问题时,Snappy会抛出异常,便于开发者捕获并处理错误。 6. **内存管理*...
4. **性能优化**:Snappy的高速特性源于精心的性能优化。这可能包括CPU缓存利用、并行处理、SIMD指令集的利用等。通过阅读源码,我们可以学习到如何在C++中进行性能优化,这对于提升软件的运行效率非常有帮助。 5. ...
为了更好地理解Snappy的适用场景,可以通过与Hadoop中其他常用压缩算法进行对比分析。下表展示了不同压缩算法的主要特性: | 压缩算法 | 压缩比 | 压缩速度 | 解压缩速度 | CPU消耗 | |----------|--------|-------...
4. **错误处理**:Snappy的API函数通常会通过返回值(例如,`false`表示失败)来报告错误。在实际应用中,需要对这些错误进行适当的处理。 标签"snappy-stubs"表明这个版本的Snappy可能包含了库的一些内部实现的...
snappy压缩包
赠送jar包:snappy-java-1.0.4.1.jar; 赠送原API文档:snappy-java-1.0.4.1-javadoc.jar; 赠送源代码:snappy-java-1.0.4.1-sources.jar; 赠送Maven依赖信息文件:snappy-java-1.0.4.1.pom; 包含翻译后的API文档...