我通常使用 WinRAR 而不是 7-Zip,因为它速度更快,压缩效率稍差。我对不同文件类型和大小进行了一些测试,比较了 7-Zip 和 WinRAR 的默认设置,包括正常压缩和最佳压缩,在很多情况下,WinRAR 快 50%,在某些情况下甚至快 100%。但是,我更喜欢 FOSS。因此,我的问题如下:
- 有没有办法让 7-Zip 加速?我希望它至少能与 WinRAR 的速度相当
- 有没有办法像在 WinRAR 中一样在 7-Zip 中创建恢复段?我没有看到任何方法,但我猜这可能是命令行的问题。
- 我使用 WinRAR 和 7-Zip 的最新稳定版本(7-Zip 为 4 点左右)测试了它们。9.x 测试版的压缩速度明显更快吗?
我说的是在 WinRAR 中类似设置下速度更快,而不仅仅是降低到最低限度的压缩。
如果重要的话,我会使用四核 Intel i7 720 (1.6 GHz)/(2.8 GHz),配备 4 GB DDR3 RAM,以及 64 位版本的 7-Zip,以及双启动 Debian x64 5.0.4 和 Windows 7 Home。
答案1
如果你得到7-Zip 9.13 测试版您可以将存档类型更改为 LZMA2,这样就可以使用任意数量的线程,但内存使用量会显著增加。
安装测试版,右键单击要存档的内容,然后在 7-Zip 上下文菜单下单击“添加到存档...”,您将看到类似于下面的窗口。在左侧的压缩方法下,您应该会找到“LZMA2”,这将允许您更改线程数,该选项位于下方。
这有可能极大地提高 2 核以上处理器的性能,因为它可以更好地适应您的系统,而正常的压缩方法最多只能处理 2 个线程。
您在图片中看到的线程数选择框右侧的“/1”是系统中的处理器数量,因此也是建议的线程数。我的 i7 是四核处理器,但具有超线程(顺便说一句,这确实有帮助),因此它显示为“/8”
答案2
由于每个线程似乎同时压缩多个文件,因此,提高非常大的 zip 作业的性能的最佳方法是将线程设置为 1,以确保您的硬盘一次只查找一个文件。
我们通过添加 7-zip 命令行来提高所有日常 zip 备份程序的性能-mmt=off
。我们对由多个小文件组成的“可视化 SVN 存储库”的备份需要 50 到 60 分钟。
有了-mmt=off
,我们现在总是能在五分钟内完成!而且,在这 50 分钟内,我们所有的服务器都因为硬盘寻道而变得非常慢。现在,在这五分钟内一切都保持得非常快。
对于您在机器上执行的所有操作,硬盘活动的速度总是比 CPU 容量慢。您可以通过禁用并行活动并确保硬盘按顺序逐个读取(和写入)文件来提高磁盘性能。
并且最好从磁盘 1 读取并将 ZIP 写入磁盘 2,因为物理磁头在从读取到写入的过程中不会移动。
采样管线以获得最大的 ZIP 速度,同时保持机器性能:
start "" /wait /belownormal c:\Progra~1\7-Zip\7z.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*
D:
并且T:
是 2 个不同的物理磁盘
答案3
在我的公司,我们正在使用旧版本的 7-zip(4.52 beta),并且我们正在运行以下命令:
"C:\Program Files\7-Zip\7z.exe" a -mx7 -mmt -sfx -xr!*.<exclude_extension> <destination>.exe <source_directory>\*
它运行良好,但是在刚刚升级到新版本 16.04(32 位)之后,性能下降了很多,所以我决定降级回旧版本。
答案4
您不再需要测试版。只需制作一个 7z 或 bz2 文件即可实现多线程。Bz2 速度更快。您可以使用 -m0 选项(而不是文档中的 -m)制作一个使用 bz2 压缩的 zip 文件。