lz4 vs lz4_hc vs blosc vs snappy vs fastlz 之间的比较

Comparison between lz4 vs lz4_hc vs blosc vs snappy vs fastlz

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

  1. lz4
  2. lz4_hc
  3. snappy
  4. quicklz
  5. blosc

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

这条信息可以帮助您: (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 不可用)

Yann Collet 的 lz4,hands down

如果你只追求高压缩密度,你想看看LZMA和large-window Brotli。这两种算法提供了广泛可用的开源算法中的最佳压缩密度。 Brotli 压缩速度较慢,但​​解压速度快约 5 倍。

像大多数问题一样,答案通常是:视情况而定:)

其他答案给了您很好的指示,但另一件需要考虑的事情是压缩和解压缩阶段的 RAM 使用情况,以及 MB/s 中的解压缩速度。

解压缩速度通常与压缩率成反比,因此您可能认为您选择了完美的算法来节省一些 bandwidth/disk 存储空间,但是现在下游消耗数据的任何东西都必须花费更多时间, CPU 循环 and/or RAM 解压缩。 RAM 的使用似乎无关紧要,但也许下游系统是一个 embedded/low-voltage 系统?也许 RAM 充足,但 CPU 有限?所有这些都需要考虑在内。

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

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