7-Zip-Komprimierung auf Mehrkerncomputern

20

Nutzt 7-Zip beim Komprimieren die Vorteile von Multiprozessor- oder Multi-Core-Systemen?

Gibt es zum Beispiel eine 16-fache Beschleunigung auf einem 16-Kern-System, wenn keine Festplatten- oder Speicherengpässe auftreten?

Oder ist es auf 2 Threads beschränkt (2-fache Beschleunigung auf Systemen mit mehr als einer CPU oder einem Kern)?


Bearbeiten : Zusammenfassend lässt sich sagen, dass die aktuelle stabile Version von 7-Zip (und älter) beim Komprimieren als 7z (nur für Zip und BZip2) nicht mehr als 2 CPUs / Kerne voll ausnutzt, Version 9 (derzeit in der Beta) jedoch . Die Befehlszeilenoption für die Verwendung von 16 Kernen mit Version 9 lautet (diese befindet sich im Installationsordner für die Windows-Version in der Hilfedatei 7-zip.chmunter Befehlszeilenversion / Schalter / -m (Komprimierungsmethode festlegen) / <nahe> " Multithread-Modus "):

-mt16
Peter Mortensen
quelle
1
Ich denke nicht, dass die Zusammenfassung ganz genau ist, siehe einige der anderen Antworten für weitere Details ...
Rogerdpack

Antworten:

10

Sie müssen die Beta-Version verwenden, um Zugriff auf weitere Kerne zu erhalten. Beta ist wie bei anderen Programmen stabil, keine Sorge. Es gab eine Erklärung in einem Forumsbeitrag auf der offiziellen Seite. Ich benutze es schon eine Weile und es gibt kein Problem damit.

Zuerst

Zweite

Übrigens benutze ich momentan 7z 9.13 beta x64. Verwenden Sie es auch in produktiven Umgebungen. (Danke Igor für die tolle Software.;))

Apache
quelle
3
Seitdem ist eine neue stabile Version herausgekommen, die standardmäßig Multithread-Komprimierung unterstützt, ohne dass die Beta-Version erforderlich ist.
Apache
Das stimmt nicht. Es können 4, 8 und mehr Kerne verwendet werden. Verwenden Sie einfach die neueste Version. Meine Güte.
Apache
4
Beachten Sie, dass diese Antwort LZMA2 und nicht LZMA verwendet. LZMA2 kann mehr als zwei Kerne verwenden, indem die Datei in Blöcke aufgeteilt und unabhängig voneinander verarbeitet wird. Dies kann dazu führen, dass LZMA höhere Kompressionsverhältnisse bietet.
Louis
4

Beim Erstellen einer 7-Zip-Datei können zwei Threads verwendet werden. Beim Erstellen einer ZIP-Datei können acht Threads verwendet werden (auf meinem 8-Core-Computer).

Akira
quelle
1
Sie können 7z mit der LZMA2-Methode verwenden, um maximale Kerne zu verwenden
Behrouz.M
1
@raypixar Funktioniert bei mir auf einem i7-Computer nicht. Nur der BZip2-Algorithmus erlaubt es, vollständige 8-Threads auszuführen, andere Algorithmen laufen nicht zu 100%, sondern bestenfalls zu ~ 20%. EVen LZMA2 zeigt im Einstellungsfeld einen 8/8-Kern an, aber bei der Verarbeitung werden nur ~ 20% der CPU ausgelastet.
Edward
1
@Edward: Ich kann Ihre Zahlen / Erfahrungen nicht bestätigen: Auf meinem i5 nutzt 7z-9.22beta 75% bis 95% der CPU und erzeugt 8 bis 32 Threads, um einen ~ 240-MB-Ordner voller MP3s zu archivieren. .bz2.7z hat ewig gedauert, .lzma2.7z war ziemlich schnell (alle Ultra-Einstellungen) und nur ein bisschen größer als .bz2.7z.
Akira
1
@akira Ja, ich weiß. Wie auch immer, der vorherige Kommentar geht direkt auf den Vorschlag von Mitglied "ray pixar" - benutze 7z mit LZMA2, um alle Kerne zu verwenden, aber in meinem Fall nicht. Über Ihre Zahlen halte ich es für logisch. Ich habe nach dem Lesen dieses Artikels mehrmals in dieser su-Site gesucht und festgestellt, dass möglicherweise etwas mit meiner aktuellen 7zip-Installation nicht stimmt. Das Problem tritt jedoch nur in der grafischen Benutzeroberfläche auf. Wenn ich Dateien mit der LZMA2-Methode komprimiere, wird nicht mehr als 20% der CPU beansprucht. Nur wenn ich eine Kommandozeile mit einem Parameter wie -m0 = lzma2 -mmt = 8 benutze, nimmt die Komprimierung 100% CPU, ansonsten mit GUI, habe ich nicht herausgefunden, warum das nicht der Fall ist.
Edward
2

Laut Wikipedia-Artikel :

Funktionen 7-Zip unterstützt viele Funktionen, darunter:

  1. Unterstützung für die 256-Bit-AES-Verschlüsselung. Die Verschlüsselung kann sowohl für Dateien als auch für die 7z-Verzeichnisstruktur aktiviert werden. Wenn die Verzeichnisstruktur verschlüsselt ist, müssen Benutzer ein Kennwort eingeben, um die im Archiv enthaltenen Dateinamen anzuzeigen, sofern nicht nur die Daten, sondern auch die Dateinamen verschlüsselt wurden. Der von WinZip entwickelte AES-Verschlüsselungsstandard ist auch in 7-Zip verfügbar, um ZIP-Archive mit AES 256-Bit zu verschlüsseln, bietet jedoch keine Dateinamenverschlüsselung wie in 7z-Archiven.
  2. Dynamisch variable Volumes, die Backups auf Wechseldatenträgern wie beschreibbaren CDs und DVDs ermöglichen.
  3. Benutzerfreundlichkeit als grundlegender orthodoxer Dateimanager bei Verwendung im 2-Panel-Modus.
  4. Es können mehrere CPU- / Core- / Threading-Einstellungen konfiguriert werden.
  5. Die Möglichkeit, EXE-Dateien als Archive zu öffnen, wodurch die Daten aus vielen Programmen vom Typ "SetUp" oder "Installer" oder "Extract" dekomprimiert werden können, ohne sie starten zu müssen.
  6. Die Möglichkeit, Archive mit beschädigten Dateinamen zu entpacken und die Dateien nach Bedarf umzubenennen. Die Möglichkeit, selbstextrahierende Archive zu erstellen, ist bei Archiven mit mehreren Volumes nicht möglich.

Öffnen Sie also die Anwendung und sehen Sie, welches Multithreading unterstützt wird.

ta.speot.is
quelle
0

Sie können auch die 7-Zip Z-Standardversion verwenden , die das Threading von bis zu 256 Threads für alle 5 zusätzlichen Codecs unterstützt.

Die Codecs sind:

  1. Brötli
  2. LZ4
  3. LZ5
  4. Eidechse
  5. Zstandard

Führen Sie es wie folgt aus:

7z a archiv.7z -m0=brotli -mx1 -mmt=1

...

7z a archiv.7z -m0=brotli -mx1 -mmt=256

Tino Reichardt
quelle