我正在尝试以良好的比率压缩 100GB,所以我决定使用 xz。我不需要它非常快,但由于我有一个 8 线程 CPU,我想知道如何利用它们。
我发现 xz 有一个并行实现:pixz。我还发现 xz 有一个多线程选项 -T。我正在尝试两者,但我看不出它们的行为有什么区别。
它们之间有什么区别?为什么 xz 有 2 个并行实现?
编辑:我发现还有另一个:pxz。
答案1
我是 pixz 的作者。正如上文推测,在 xz 添加线程支持之前,我确实编写了 pixz。我认为 pixz 促使 Lasse Collin 尽早为 xz 添加多线程支持。
当然,pixz 和 xz 之间还是有一些区别的。xz 的优势在于:
- 它有更多的选择
- 它已经被更多人测试过了
- 它的代码质量可能更好——pixz 是一个猖獗的原型 ;)
但我仍然喜欢使用 pixz 的一些原因:
- 它更小,更容易理解
- 它支持多线程德压缩,而 xz 没有
- 它对 tarball 有特殊行为:在执行压缩时,它还会创建 tarball 中所有文件的索引。这样即使 tarball 很大,也可以快速提取单个文件。