CPU wird beim Komprimieren mit 7-Zip kaum genutzt

612
oleg

Wenn ich versuche, mit maximaler Komprimierung von 7z zu komprimieren, liegt meine CPU-Auslastung unter 20%. Nur einer der Kerne ist zu 100% belastet und nicht einmal zu 100%.

Ich bin auf einer schnellen SSD, daher wird die Festplatte auf keinen Fall einen Engpass darstellen.

Dies sind die Befehle, die ich ausprobiert habe:

7z a -mx=9 -m0=LZMA2 -mmt12 test.7z *.mkv 7z a -mx=9 -m0=LZMA2 -mmt=12 test.7z *.mkv 7z a -mx=9 -m0=LZMA2 -mmt=on test.7z *.mkv 

Dies ist der CPU-Auslastungsgraph:

Graph

0
Abhängig von der Implementierung ist es möglicherweise nur ein einzelner Thread. Der verwendete Kompressionsalgorithmus kann dieses Verhalten ebenfalls beeinflussen. Die Grafik zeigt nicht wirklich viel, da nicht klar ist, welche andere Software bei 7z ausgeführt wurde. Seth vor 5 Jahren 1
Seltsamerweise sollte LZMA2 alle Kerne verwenden. Hat 7z dasselbe Verhalten, wenn Sie über das Dialogfeld "Zum Archiv hinzufügen" der Benutzeroberfläche archivieren? spikey_richie vor 5 Jahren 0
Ja, auch wenn ich die Benutzeroberfläche benutze. oleg vor 5 Jahren 0

1 Antwort auf die Frage

0
Mokubai

Ich sehe dasselbe Verhalten mit der -mx9angewendeten Flagge.

Wenn die Flagge entfernt ist, sehe ich, dass alle Kerne vollständig ausgelastet sind.

Der "Ultra" -Komprimierungsalgorithmus ( mx9) führt eine umfassendere und speicherintensive Suche durch und wird daher durch die Speicherbandbreite eingeschränkt.

Die Verwendung von -mx5oder -mx7führt zu einer höheren CPU-Auslastung.


Auf dieser Seite scheint es so zu sein, dass die Einstellungen Ultra (9) und High (7) zu erheblich größeren Wörterbüchern und anderen Einstellungen der Daten führen, um die Komprimierung zu überprüfen. Dadurch wird die Komprimierung erheblich verlangsamt. Da sich die Daten im Speicher befinden, ist die Speicherbandbreite der limitierende Faktor.


Die Verwendung größerer Wörterbücher wirkt sich erheblich auf die Komprimierungsgeschwindigkeit aus, da für jeden Byte-Satz der zu komprimierenden Datei nun ein Wörterbuch mindestens zwei- oder viermal so groß durchsucht werden muss, dass Algorithmen verwendet werden, die den Datensatz möglicherweise mehrfach durchsuchen auf veschiedenen Wegen. Dies kann zu einer exponentiellen Verlangsamung führen, wenn der Speicherbedarf steigt.

Ultra ändert auch den Wörterbuchsuchalgorithmus, vermutlich in einen Algorithmus, der hinsichtlich der Komprimierung effizienter ist, wenn nicht der Geschwindigkeit. Wenn er schneller wäre, wäre er die Standardeinstellung. Dies wird es noch weiter verlangsamen.

Komprimierungsalgorithmen werden oft als eine Reihe von Kompromissen geschrieben, die auf dem Status der aktuellen Hardware basieren. Die Einstellungen werden von ihrem theoretischen Spitzenkompressionsverhältnis herabgestimmt, so dass sie eine vernünftige Kompression in einer vernünftigen Zeit erreichen. Da alles auf maximale Komprimierung abgestimmt ist, haben Sie enormen Speicherbedarf sowie Speicherbandbreite und CPU-Zeit. Das Dekomprimieren kann auch erheblich höhere Ressourcen erfordern.

Die Verwendung von "Ultra" -Einstellungen ist nur sinnvoll für Daten, die ohne Zeitbeschränkungen maximal komprimiert werden sollen, und die Ergebnisse, die Sie sehen, spiegeln dies wider. Sie haben jetzt eine der Einschränkungen Ihres Systems.

Wenn Sie die Datei einfach an einen Freund senden und ein paar Prozent größere Datei tolerieren können, sind die "normalen" Einstellungen wahrscheinlich ausreichend.