改进后的Zstd压缩算法被并入Linux 5.16 迎来性能大提升原创
Zstd被普遍用于Linux内核的各个领域用于数据压缩,从与Btrfs一样的透明文件系统压缩到允许内核模块用Zstandard算法进行压缩,但已经存在于内核中的代码已经过时多年了。而在Linux 5.16中,Zstd的内核实现被提升到了最新标准,并提供了更好的性能。
周六晚上为Linux 5.16合并的是Linux内核的Zstd代码,它经过了全面的修改。修订后的代码在Zstd的基础上加入了新内核风格封装的API,这也有利于今后更容易更新,并可以自动生成/衍生出上游的Zstd源代码。
现有的Zstd内核代码已经有四年的历史了,在这段时间里,Zstd的上游已经有了许多错误的修正和性能的优化。使用Linux 5.16的新代码,Btrfs Zstd的解压速度可以提高15%,SquasFS Zstd的解压速度也可以提高15%,F2FS Zstd的解压速度可以提高20%,zRAM的解压速度可以提高30%,内核Zstd图像的解压速度可以提高35%,不仅如此,还有其他的优点。
在不久的将来,Zstd还会有更多的性能优化,但想达到这个里程碑,首先需要将大修后的代码合并到主线上。Zstd 1.5.1应该很快就会到来,以更好地统一繁杂的事务并提供最新的改进。
关于这个大更新的更多细节,对于任何在内核中依赖Zstd压缩/解压的人来说,可以看这个Git合并的所有细节:
这个拉动请求是几天前提交的,但Linus Torvalds指出,鉴于它的影响,他希望推迟合并,以便有更多时间亲自审查代码。
如果你对Zstd的CPU性能基准感兴趣,请参阅OpenBenchmarking.org的网页,了解许多不同处理器的综合排名:
https://openbenchmarking.org/test/pts/compress-zstd#results