Gemäß Schalter -m (Komprimierungsmethode festlegen) # ZipMultiThread - 7ZIP-Handbuch und -Dokumentation, mt
ist standardmäßig on
, also muss es überhaupt nicht angegeben werden.
Die 7zip-Implementierung des DEFLATE-Algorithmus unterstützt jedoch kein Multi-Threading!
Wie Sie bereits festgestellt haben,
7za a archive.zip bigfile
verwendet nur einen Kern.
Aber .zip
Dateien komprimieren jede Datei einzeln. Beim Komprimieren mehrerer Dateien komprimiert die Multithreading-Option eine Datei pro Kern auf einmal.
Probieren Sie es aus und Sie werden es sehen
7za a archive.zip bigfile1 ... bigfileN
verwendet alle verfügbaren N
Kerne.
Wenn Sie die Komprimierung einer Single beschleunigen möchten Datei haben Sie zwei Möglichkeiten:
-
Teilen Sie
bigfile
auf in Stücken. -
Verwenden Sie einen anderen Komprimierungsalgorithmus.
Beispielsweise unterstützt die Implementierung des BZip2-Algorithmus in 7zip Multi-Threading.
Die Syntax lautet:
7za a -mm=BZip2 archive.zip bigfile
Außerdem wird der Syntaxfehler durch Ihren Versuch verursacht, den LZM-Algorithmus für einen .zip
zu verwenden Container. Das ist nicht möglich.
Die möglichen Algorithmen für .zip
Container sind DEFLATE(64), BZip2 und keine Komprimierung.
Wenn Sie den LZM-Algorithmus verwenden möchten, verwenden Sie einen .7z
Container. Dieser Container verarbeitet auch die folgenden Algorithmen:PPMd, BZip2, DEFLATE, BCJ, BCJ2 und keine Komprimierung.
Dies ist eine alte Frage und nicht die Antwort auf die spezifische Frage, sondern eine Antwort auf den Geist der Frage (Verwenden aller Kerne zum Komprimieren eines ZIP-Formats)
pigz (paralleles gzip mit .zip-Option)
pigz -K -k archive.zip bigfile txt
Dadurch erhalten Sie eine zip-kompatible Datei 7x schneller bei gleicher Komprimierungsstufe.
Ein schneller Vergleich von Zip-kompatiblen und Nicht-Zip-Kompressoren mit Einzel- und Mehrfachkernen.
wall times auf i7-2600k um 1.0gb txt datei auf fedora 20 zu komprimieren
67s (120mb) 7za (zip,1 thread)
15s (141mb) 7za -mx=4 (zip,1 thread)
17s (132mb) zip (zip,1 thread)
5s (131mb) pigz -K -k (zip,8 threads)
9s (106mb) bsc (libbsc.com) (not zip,8 threads)
5s (130mb) zhuff -c2 (not zip,8 threads)
2s (149mb) zhuff (not zip,8 threads)
Wandzeiten zum Dekomprimieren
4.2s unzip -t
2.0s pigz -t
5.1s bsc d
0.5s zhuff -d