7-zip 的 -m 开关后面的数字代表什么意思?

7-zip 的 -m 开关后面的数字代表什么意思?

7-zip 有一个命令行开关设置压缩方法,-m后跟数字,例如
-m0=LZMA

0示例中的数字 () 表示什么意思?不同的数字会产生略微不同的压缩结果和性能:

Parameters                      Wall    User    System
-m0=LZMA -mx=9 -ms=on -mmt=off  28.4    27.48   0.85
-m1=LZMA -mx=9 -ms=on -mmt=off  27.45   33.06   0.90
-m0=LZMA -mx=9 -ms=on -mmt=on   12.74   24.39   1.14
-m1=LZMA -mx=9 -ms=on -mmt=on   15.08   33.14   1.28
-m0=LZMA -mx=9 -ms=on -mmt=off  26.5    25.58   0.65
-m1=LZMA -mx=9 -ms=on -mmt=off  27.07   32.84   0.87
-m0=LZMA -mx=9 -ms=on -mmt=on   13.27   24.99   1.00
-m1=LZMA -mx=9 -ms=on -mmt=on   15.32   33.28   1.47

答案1

如果您同时使用多个压缩操作,则该数字可让您设置压缩操作的顺序。

这是来自文档的一个例子:

7z a a.7z *.exe *.dll \
    -m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 \
    -mb0:1 -mb0s1:2 -mb0s2:3

使用 BCJ2 过滤器将 *.exe 和 *.dll 文件添加到档案 a.7z,主输出流 (s0) 使用带有 32 MB 字典的 LZMA,BCJ2 的 s1 和 s2 输出流使用带有 512 KB 字典的 LZMA。

第一个压缩是最低的数字,即零。在此示例中,零设置为 BCJ2。接下来是一,即 LZMA。二和三也是 LZMA,但它们使用的d参数不同。

-mb选项用于将一种压缩的输出“绑定”到另一种压缩的输入。在此示例中,BCJ2 有一个输入和四个输出。输出零将发送到压缩一。输出一将发送到压缩二。输出二将发送到压缩三。输出三未绑定(因为它不需要再次压缩)。


在您的示例中,它们仅使用一个压缩操作,因此您为其分配哪个数字并不重要。

相关内容