GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Multithread-Unterstützung in 7za

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:

  1. Teilen Sie bigfile auf in Stücken.

  2. 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

Linux
  1. Linux – Kernel:Namespaces-Unterstützung?

  2. Kodierung einer Zip-Datei?

  3. Der Status der Hidpi-Unterstützung in Xfce?

  4. Linux-Zip-Befehl

  5. Komprimierungs- und Archivierungsmethoden in Linux

Unterstützung der Zertifikatstransparenz

So entpacken Sie Dateien unter Linux

So fügen Sie Brotli-Komprimierungsunterstützung zu Nginx unter Debian 10 hinzu

So aktivieren Sie die GZIP-Komprimierung in Nginx

So komprimieren Sie Ordner unter Linux

Was ist effizienter - tar- oder zip-Komprimierung? Was ist der Unterschied zwischen tar und zip?