De acordo com -m (Definir compactação Método) switch # ZipMultiThread - manual 7ZIP & documentação , mt
é padronizado para on
, então não há necessidade de especificá-lo.
No entanto, a implementação do 7zip do algoritmo DEFLATE não suporta multi-threading!
Como você já descobriu,
7za a archive.zip bigfile
usa apenas um núcleo.
Mas os arquivos .zip
compactam todos os arquivos individualmente. Ao compactar vários arquivos , a opção multi-threading compacta um arquivo por núcleo de uma só vez.
Experimente e você verá que
7za a archive.zip bigfile1 ... bigfileN
usará todos os N
núcleos disponíveis.
Se você quiser acelerar a compactação de um arquivo único , terá duas opções:
-
Divida
bigfile
em blocos. -
Use um algoritmo de compactação diferente.
Por exemplo, a implementação do 7zip do algoritmo BZip2 suporta multi-threading.
A sintaxe é:
7za a -mm=BZip2 archive.zip bigfile
Além disso, o erro de sintaxe é causado por sua tentativa de usar o Algoritmo LZM para um contêiner .zip
. Isso não é possível.
Os algoritmos possíveis para .zip
conatiners são DEFLATE (64), BZip2 e sem compressão.
Se você quiser usar o Algoritmo LZM, use um contêiner .7z
. Esse contêiner também lida com os seguintes algoritmos: PPMd, BZip2, DEFLATE, BCJ, BCJ2 e sem compactação.