多核压缩工具

多核压缩工具

什么压缩工具可以在 Ubuntu 中使用,并且可以从多核 CPU 中受益。

答案1

嗯,关键词是平行线。在寻找所有压缩工具后,平行线我发现了以下内容:

平心静气- Parallel XZ 是一款压缩实用程序,它利用在多个核心和处理器上同时对输入文件的不同部分运行 LZMA 压缩。其主要目标是利用所有资源来加快压缩时间,同时尽量减少对压缩率的影响。

sudo apt-get install pxz

压缩包- Lzip 是基于 LZMA 算法的无损数据压缩器,具有非常安全的完整性检查和与 gzip 或 bzip2 类似的用户界面。Lzip 的解压缩速度几乎与 gzip 一样快,压缩效果优于 bzip2,这使其非常适合软件分发和数据存档。

Plzip 是 lzip 的大规模并行(多线程)版本,使用 lzip 文件格式;plzip 生成的文件与 lzip 完全兼容。

Plzip 旨在在多处理器计算机上更快地压缩/解压大文件,这使得它特别适合分发大型软件文件和大规模数据归档。对于足够大的文件,plzip 可以使用数百个处理器。

sudo apt-get install plzip

- pigz 代表 GZip 的并行实现,是 gzip 的功能齐全的替代品,它在压缩数据时利用多个处理器和多个核心。

sudo apt-get install pigz

PBZIP2- pbzip2 是 bzip2 块排序文件压缩器的并行实现,它使用 pthreads 并在 SMP 机器上实现近线性加速。此版本的输出与 bzip2 v1.0.2 完全兼容(即:使用 pbzip2 压缩的任何内容都可以使用 bzip2 解压)。

sudo apt-get install pbzip2

压缩包- 一个多线程压缩程序,在处理大型文件时可实现非常高的压缩率和速度。它使用 zpaq 和 lzma 的组合压缩算法实现最大压缩率,使用 lzo 实现最大速度,并使用 rzip 实现远程冗余减少。它旨在随着 RAM 大小的增加而扩展,从而进一步提高压缩率。选择大小或速度优化可实现比 lzma 更好的压缩率,或比 gzip 更快的速度,但压缩级别与 bzip2 大小相当。

sudo apt-get install lrzip

一个小型的压缩基准(使用 Oli 创建的测试):

原始文件大小 - 100 MB
PBZIP2 - 101 MB(大 1%)
PXZ - 101 MB(大 1%)
PLZIP - 102 MB(大 1%)
LRZIP - 101 MB(大 1%)
PIGZ - 101 MB(大 1%)

小型压缩基准(使用文本文件):

原始文件大小 - 70 KB 文本文件
PBZIP2 - 16.1 KB (23%)
PXZ - 15.4 KB (22%)
PLZIP - 15.5 KB (22.1%)
LRZIP - 15.3 KB (21.8%)
PIGZ - 17.4 KB (24.8%)

答案2

主要有两个工具。lbzip2pbzip2。它们本质上是 bzip2 压缩器的不同实现。我比较了它们(输出是整理后的版本,但您应该能够运行命令)

cd /dev/shm  # we do all of this in RAM!
dd if=/dev/urandom of=bigfile bs=1024 count=102400

$ lbzip2 -zk bigfile 
Time: 0m3.596s
Size: 105335428 

$ pbzip2 -zk bigfile
Time: 0m5.738s6
Size: 10532460

lbzip2似乎是随机数据方面的赢家。压缩程度略低,但速度更快。YMMV。

答案3

更新:

XZ 实用程序自 v5.2.0 开始支持多线程压缩,最初被错误地记录为多线程解压缩。

例如:tar -cf - source | xz --threads=0 > destination.tar.xz

答案4

标准支持多线程v1.2.0¹. 它是一种非常快速的压缩器和解压缩器,旨在替代 gzip,并且其最高压缩效率也可以与 LZMA2/XZ 媲美(甚至更好)。

你必须使用其中一个版本或者从源代码编译最新版本以获得这些好处。幸运的是,它不会引入很多依赖项。

zstd v1.1.0 中还有第三方 pzstd。

相关内容