Zstd 1.4.5 更新 Facebook 开源的无损压缩算法

Zstd 1.4.5 已发布,zstd(Zstandard)是由 Facebook 开源的快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,并且具有更好的压缩比。zstd 还可以以压缩速度为代价提供更强的压缩比,速度与压缩权衡可通过小增量进行配置。

这是一个相当重要的版本,更新内容包括性能改进和新的主要 CLI 功能。此外还修复了一些极端情况,是一个值得升级的版本。

更快的解压性能

具体的的运行速度因文件和编译器而异。对于 x64 cpus,预计至少有 5% 的速度提升,在有利的情况下,最高可达 10%;ARM cpus 的速度提升幅度在 15% 附近,在某些 SoC 和场景下,速度提升最高可达 50%(由于 SoC 设计差异较大,ARM 的情况更为复杂)。

下面的基准测试在现代 x64 平台上运行,使用了 gcc v9.3.0 编译的 zstd -b:

v1.4.4 v1.4.5

silesia.tar 1568 MB/s 1653 MB/s

--- --- ---

enwik8 1374 MB/s 1469 MB/s

calgary.tar 1511 MB/s 1610 MB/s

同样的平台, 使用 clang v10.0.0 编译器:

v1.4.4 v1.4.5

silesia.tar 1439 MB/s 1496 MB/s

--- --- ---

enwik8 1232 MB/s 1335 MB/s

calgary.tar 1361 MB/s 1457 MB/s

其他更新:

perf: 提升在aarch64上的快速压缩速度 (#2040, ~+3%)

perf: 1级压缩速度小幅提升(取决于编译器)

fix: 修复使用高层级(--ultra)和多线程对大文件造成的压缩率回归错误

……

详情查看

https://github.com/facebook/zstd/releases/tag/v1.4.5