如何在命令行上使用 7-zip 9.20 启用多线程 LZMA2?

dja*_*fan 14 zip archiving 7-zip

如何在命令行上使用 7-zip 9.20 启用多线程 LZMA2?我知道这通常是使用 -t 选项完成的,如下所示: "-tzip" 。

我如何用 LZMA2 做到这一点?我试过 -tlzma 和 -tlzma2 都没有效果。我也试过根本不通过 -t,它只是以“lzma”模式运行单线程。

这是我目前拥有的命令,但它很慢,而且是单线程的:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y XMLBackup.zip *.xml
Run Code Online (Sandbox Code Playgroud)

Tim*_*003 11

尝试 -m0=lzma2

"C:\Program Files\7-Zip\7z.exe" a -m0=lzma2 -r -y XMLBackup.zip *.xml
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 这与 -mmt=x 结合为我做了诀窍。似乎如果未指定 lzma2 它使用较旧的 lzma 压缩,因此不能使用多线程。如果同时指定这两个选项,它将能够使用多线程。 (5认同)

iNG*_*NGO 5

帮助文件说它是 mt=number_of_threads

我知道这是专门针对命令行的,但是在使用 GUI 时我可以说一件事,一旦您切换到 LMZA2,您就会获得所有选项。它确实大大加快了压缩速度,充分利用了 CPU 的 100% 功率,而不是通常的 25%。


cla*_*rkk 5

7z a -txz -mx=9 -mmt=on out.tar.xz in.tar
Run Code Online (Sandbox Code Playgroud)

-txz使用 XZ (LZMA2)

-mx=9设置压缩级别(1 最快/9 最佳压缩)

-mmt=onLZMA2 最多仅支持 2 个线程(或者-mmt=on-mmt=off),但on默认情况下是多线程

https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm#XZ

  • 不知何故,关于最多两个线程的声明似乎并不真正涉及“7z”,或者它是过时的信息。至少在我的例子中,“7z”的 CPU 核心数量与我告诉它在机器空闲时使用线程的数量一样多。 (3认同)

Jes*_*hia 1

多线程模式在标志中给出-m,显然仅针对 zip、7z、bzip2 和 xz 实现。进一步来说,-mmt=<<# of threads>>。但是,根据文档,它是默认启用的。有关详细信息,请参阅 7-zip 附带的 CHM 手册。