什么压缩工具可以在 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
主要有两个工具。lbzip2
和pbzip2
。它们本质上是 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