到目前为止,我曾经使用tar
LZMA 压缩选项之一(--lzma
、--xz
或--lzip
)来备份数据
我最近注意到 7-Zip 已于 2021 年移植到 Linux(https://www.xda-developers.com/7-zip-linux-official-release/)。我不是在谈论旧的 P7Zip ( https://p7zip.sourceforge.net/ ),它似乎不再被维护,而是在谈论官方的 7-Zip。
因此,我对其进行了测试,并且非常惊讶地发现,对于相同的压缩比,它比所有其他 Linux LZMA 实现要快得多。
以下是我的测试(Debian 11)。请注意,我在每次测试之间清空了 RAM 缓存 ( sync && echo 3 > /proc/sys/vm/drop_caches
)
我正在处理一个163M的文件夹,包含几种类型的文件,PDF,文本,开放办公室等等......
$ du -hs TEST/
163M TEST/
使用 7-Zip,它可以在 15 秒内压缩成 127M 的文件:
$ time tar c -hp TEST/ | 7zz a -si test.tar.7z
real 0m14,565s
(...)
$ ll test.tar.7z
(...) 127M (...) test.tar.7z
而对于 LZMA 的所有其他实现,对于相同的存档大小,它花费的时间几乎是 5 倍(大约 1'13")!
$ time tar -chp --lzma -f test.tar.lzma TEST/
real 1m13,159s
$ time tar -chp --xz -f test.tar.xz TEST/
real 1m12,889s
$ time tar -chp --lzip -f test.tar.lz TEST/
real 1m12,525s
$ ll test.tar.{7z,lz*,xz}
(...) 127M (...) test.tar.7z
(...) 127M (...) test.tar.lz
(...) 127M (...) test.tar.lzma
(...) 127M (...) test.tar.xz
为了确保 没有任何问题tar
,我做了相同的测试,但tar
将 的输出通过管道传输到lzma|xz|lzip
, 而不是使用--lzma
,--xz
和--lzip
开关。结果相同。
所以,基本上,7-Zip 的 Linux 版本让所有其他 LZMA 实现看起来相当黯淡。我认为 7-Zip 不支持 Linux 所有者和权限,但这在压缩文件时无关紧要.tar
。
那么,有人知道为什么 7-Zip 的 Linux 版本比其他 LZMA 实现快得多吗?