19

我有一个大小为 500 mb 的大文件,可以在一分钟内以最佳压缩率进行压缩。我发现这些算法适合我的使用。

  1. lz4
  2. lz4_hc
  3. 活泼的
  4. 快点

有人可以比较这些算法之间的速度和压缩比吗?

4

4 回答 4

34

Yann Collet 的 lz4,放下手

在此处输入图像描述

于 2016-10-20T10:15:39.843 回答
5

这个migth可以帮助你:(lz4 vs snappy)http://java-performance.info/performance-general-compression/ (lz4、snappy、lz4hc、blosc的基准)https://web.archive.org/web/20170706065303 /http://blosc.org:80/synthetic-benchmarks.html (现在在http://www.blosc.org/synthetic-benchmarks.html 上不可用)

于 2016-06-12T01:32:10.547 回答
2

像大多数问题一样,答案通常最终是:这取决于:)

其他答案为您提供了很好的指导,但要考虑的另一件事是压缩和解压缩阶段的 RAM 使用情况,以及以 MB/s 为单位的解压缩速度。

解压缩速度通常与压缩率成反比,因此您可能认为您选择了完美的算法来节省一些带宽/磁盘存储,但是现在下游消耗该数据的任何东西都必须花费更多时间、CPU 周期和/或 RAM解压。RAM 的使用似乎无关紧要,但下游系统可能是嵌入式/低压系统?也许RAM充足,但CPU有限?所有这些事情都需要考虑在内。

以下是对各种算法进行的一组基准测试的示例,其中考虑了很多这些因素:

https://catchchallenge.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

于 2020-04-17T05:31:05.890 回答
1

如果您只针对高压缩密度,则需要查看 LZMA 和大窗口 Brotli。这两种算法提供了广泛可用的开源算法中最佳的压缩密度。Brotli 在压缩时较慢,但在解压缩时快约 5 倍。

于 2019-03-27T15:24:54.057 回答