Komprimierte Dateien - Entpacken beschleunigen, aber wie?

Karotte81

BIOS-Overclocker(in)
Nabend,

ich würde gerne mal grundsätzlich fragen, welche Faktoren beim Entpacken einer Datei eigentlich hauptsächlich dafür verantwortlich sind, wie lange der Entpackvorgang letztlich dauert?

Natürlich ist mir auch klar, dass es nichts mit der Grafikkarte zu tun hat, sondern für mich sind da hauptsächlich CPU, Festplatte und evtl Arbeitsspeicher verantwortlich. Und natürlich der Grad der Kompression, den man ja von "außen" so n

Nun habe ich in den letzten Jahren(wie sicher viele andere auch), meine Festplatten ausgetauscht gegen deutlich schnellere Festplatten. Sei es eine schnelle SATA HDD, mehrere SSD's und auch einen m2 "Stick". Und da ich immer mal wieder Dateien entpacke, auch etwas größere, hatte ich mir eigentlich einen gewissen Geschwindigkeitszuwachs versprochen. Sicherlich, es geht bestimmt schneller als vorher, aber trotzdem dauert es mir immer noch zu lange. Zumal es kaum einen Unterschied macht, ob ich auf HDD oder SSD entpacke, selbst die m2 ist nicht viel schneller beim Entpacken.

Warum ist das so? Ich habe eigentlich kaum bis nie beobachtet, zumindest in den letzten Jahren, wie die Auslastung beim Entpacken ist. Und was mich etwas verwundert war die Tatsache, dass weder Festplatte noch CPU voll ausgelastet sind. sogar teils weit entfernt davon.
Grad mal etwas entpackt, da war die CPU bei knapp 10% und die Festplatte so bei 75-80%.

Daher frage ich mich, wie kann ich das noch beschleunigen? Die CPU ist doch sicherlich auch dafür verantwortlich wie schnell das geht, wieso gibt sie nicht mehr Gas? Oder "ist das halt so" ....

Und für die tl;dr -Fraktion:
Wie beschleunige ich das Entpacken einer Datei und warum sind CPU/HDD beim Entpacken nicht ausgelastet?

Bin gespannt auf eure Meinungen :nicken:
 
Üblicherweise ist der limitierende Faktor der Prozessor. Heutzutage ist dabei die wichtigste Frage, ob dein Komprimieralgorithmus Multithreading beherrscht.

Wenn er das tut und die CPU trotzdem nicht voll ausgelastet ist, wird auf irgendeiner Ebene der verwendete Speicher zu langsam sein.


Hast du mal ein konkretes Beispiel? Bei welchem Komprimieralgorithmus auf welchem Betriebssystem hast du denn Probleme?
 
Entpacke von einer Ramdisk in eine Ramdisk (falls Du genug RAM hast),
damit würdest Du den "Flaschenhals" HJDD/SSD umgehen und sehen das es an der CPU hängt, wenn Du z.b. Kerne abschaltest. Eventuell kannst Du dann auch sehen wie viele Kerne Dein Programm eigentlich benutzt.

Ach Du hast ja nur 4 Kerne ... da ist natürlich Essig mit Kerne abschalten.
 
Entpacke von einer Ramdisk in eine Ramdisk (falls Du genug RAM hast),
damit würdest Du den "Flaschenhals" HJDD/SSD umgehen und sehen das es an der CPU hängt, wenn Du z.b. Kerne abschaltest. Eventuell kannst Du dann auch sehen wie viele Kerne Dein Programm eigentlich benutzt.

Ach Du hast ja nur 4 Kerne ... da ist natürlich Essig mit Kerne abschalten.

Das war jetzt aber ein bisschen sinnlos, oder? :D
Denke aber mit 32GB komme ich da so oder so nicht weit.

Üblicherweise ist der limitierende Faktor der Prozessor. Heutzutage ist dabei die wichtigste Frage, ob dein Komprimieralgorithmus Multithreading beherrscht.

Wenn er das tut und die CPU trotzdem nicht voll ausgelastet ist, wird auf irgendeiner Ebene der verwendete Speicher zu langsam sein.


Hast du mal ein konkretes Beispiel? Bei welchem Komprimieralgorithmus auf welchem Betriebssystem hast du denn Probleme?

Wo sehe ich denn wie der Komprimierungsalgorithmus bei einer gepackten Datei ist? Und klar, DDR4 3000Mhz CL15 ist jetzt nicht das Höchste der Gefühle, aber sicher auch nicht langsam. Ich nutze übrigens natürlich Windows 10. Und Probleme hab ich ja nicht, es dauert mir einfach nur zulange. Kann nicht sein dass ich bei 100GB fast 20-25 Minuten da dransitze. Wenn die Daten so, ausgepackt, verschoben oder kopiert werden, ist die Geschwindigkeit total in Ordnung.

Ich kann ja auch mal so fragen, wo würdet ihr bei meinem System ansetzen, um das ganze etwas zu beschleunigen?
 
Wo sehe ich denn wie der Komprimierungsalgorithmus bei einer gepackten Datei ist?
Von was für einer Kompression reden wir? zip?

Kann nicht sein dass ich bei 100GB fast 20-25 Minuten da dransitze. Wenn die Daten so, ausgepackt, verschoben oder kopiert werden, ist die Geschwindigkeit total in Ordnung.
Je nach Einstellung kann das schon sehr gut sein. Bei den meisten Kompressionsverfahren kann man verschiedene Konfigurationen vornehmen, welche den Kompressionsgrad und damit die resultierende Dateigröße und die Verarbeitungszeit extrem verändern können.
Ich kann ja auch mal so fragen, wo würdet ihr bei meinem System ansetzen, um das ganze etwas zu beschleunigen?

Da gäbe es viele Ansätze ...

- einen anderen Kompressionsalgorithmus nutzen
- die Kompressionsstufe verändern
- ein Betriebssystem mit besserem Ressourcenmanagement installieren (also Linux)
- einen schnelleren Prozessor kaufen
- den aktuellen Prozessor übertakten
- schnelleren Haupt- und Massenspeicher verwenden
- die Speicherschnittstellen übertakten
 
Von was für einer Kompression reden wir? zip?

Zip und Rar Dateien, manchmal auch 7zip. Spielt das eine Rolle? Aber meistens .rar Dateien. Dennoch sieht man nie die Kompressionsstufe. Denkst du ernsthaft, ich komprimiere Dateien mit dem vllt höchsten Komprimierungsgrad und wundere mich dann darüber, dass das lange dauert? :D mal davon ab geht es nicht darum dass eine stark komprimierte Datei länger dauert, sondern dass es für mein Gefühl grundsätzlich zu lange dauert iwas zu entpacken.

Je nach Einstellung kann das schon sehr gut sein. Bei den meisten Kompressionsverfahren kann man verschiedene Konfigurationen vornehmen, welche den Kompressionsgrad und damit die resultierende Dateigröße und die Verarbeitungszeit extrem verändern können.

Ist klar, hab ich ja auch im Eingangsposting bereits erwähnt.

Da gäbe es viele Ansätze ...

- einen anderen Kompressionsalgorithmus nutzen
- die Kompressionsstufe verändern
- ein Betriebssystem mit besserem Ressourcenmanagement installieren (also Linux)
- einen schnelleren Prozessor kaufen
- den aktuellen Prozessor übertakten
- schnelleren Haupt- und Massenspeicher verwenden
- die Speicherschnittstellen übertakten

Dir ist aber klar dass ich die Dateien nicht selber packe? Also ist nix mit "anderen Algorithmus nutzen. Gleiches gilt für Kompression.

Linux ist Blödsinn für unerfahrene User, als ob ich wg dem Entpacken von Dateien ein anderes OS nutze. Ich dachte da eher an praxistaugliche Tipps, die man schnell umsetzen könnte. Dass ich mir einfach die teuerste CPU, den schnellsten Ram und generell den besten Kram kaufen könnte, DAS ist mir dann wohl auch klar. :schief:

Zumal ich auch nicht verstehe, was soll eine bessere CPU nutzen? Die CPU wird doch kaum beansprucht. Was nutzt es dann wnen ich ne bessere CPU habe? Ich glaube nicht das 200-500Mhz in der Spitze pro Kern die Welt ausmachen.
Schnelleren Speicher hab ich schon gesagt, was soll ich da kaufen? 4800Mhz Ram? Inkl neuem Board? Also 400-500€ für Ram ausgeben + 200-300€ für ein Board was so einen ram überhaupt unterstützt? Um wieviel % Steigerung zu haben??
Dir dürfte auch klar sein, dass der P/L Faktor und der Nutzen Faktor da ganz ganz schlecht sind.

Ich hatte einfach gehofft es gibt Tipps die dahingehen, dass der Rechner stärker genutzt wird beim Entpacken, so dass so der Entpackvorgang beschleunigt wird.
Sagte ja shcon, wenn das halt "normal" ist bzw. "wenns halt so ist", dann ist es halt so ... dann kann man nix machen.

Das offensichtlichste muss man hier nicht einwerfen, das bringt auch nichts.

RGB Lüfter hast du aber vergessen.

100Gb auf 4 Kernen in 20-25 Minuten ist doch ok.

Stryke7 hat die wichtigen Punkte genannt.
Die Signatur krieg ich am Handy leider nichtmal in der Browservariante. :(

Auch nicht wenn du es als Desktop Seite anzeigen lässt?
Aber hier:
Gehäuse: NZXT Noctis 450 Black Mainboard: ASUS RoG Strix Z270F Gaming GPU:Gainward GTX 1080Ti Phoenix CPU/Kühler: i7 6700K@Scythe Fuma RAM: 16GB DDR4-3200 Corsair Vengeance LPX Netzteil: be quiet! Straight Power 10 CM 500W HDDs: Samsung 830 SSD 120GB+Crucial BX200 SSD 240GB+Samsung m.2 970 Evo TV: Sony KDL-55A1 Sound: Beyerdynamic MMX 300(2017)

Und gut zu wissen dass du die Entpackdauer als normal einschätzt. In meiner grenzenlosen Naivität habe ich irgendwie damit gerechnet, sowas auch mal beschleunigen zu können. Mir dauert das alles viel zu lange. Mir is auch mal aufgefallen, mittlerweile lade ich schneller runter als ich entpacken kann, das kann einfach nicht sein :ugly:

Und es ist ja shcön sich supertolle, schnelle Festplatten zu kaufen, aber dass dieser Vorteil so aufgefressen wird von CPU und Ram, wovon beide überhaupt nicht ausgelastet sind. Sorry, aber das verstehe ich nicht so richtig.


PS: Lüfter hab ich auf Vollgas gedreht, seitdem geht das entpacken viel schneller :ugly:
 
Dir ist aber klar dass ich die Dateien nicht selber packe? Also ist nix mit "anderen Algorithmus nutzen. Gleiches gilt für Kompression.
Nein, das war mir noch nicht klar. Das ist natürlich doof. Dann kannst du tatsächlich nicht viel tun.
Linux ist Blödsinn für unerfahrene User, als ob ich wg dem Entpacken von Dateien ein anderes OS nutze.
Ich dachte da eher an eine VM.
 
Moment mal, mit einer 120GB SSD + 256GB m2 entpackst du 100 GB von wo nach wo? Wie voll sind die Platten denn jeweils?
Auf welcher SSD läuft dein OS?

PS: Naiv wäre wohl nur zu glauben, es ließe sich irgendwas beschleunigen ohne auch nur an einer Variablen zu drehen.
 
Zuletzt bearbeitet:
Das war jetzt aber ein bisschen sinnlos, oder?
Nein. Wenn ich in einem 1GB großen Quelltextarchiv etwas suchen möchte, dann wird es erst einmal aus dem Netz (oder vom NAS) auf die Ramdisk geladen, dort entpackt und spätestens am Ende des Tages automatisch gelöscht.

Das ist eine der im Folgenden erwähten "unnützen" Geldausgaben für die (nur) 64 GB Ram, die sonst gelegentlich mit VMs voll sind.

Denkst du ernsthaft, ich komprimiere Dateien mit dem vllt höchsten Komprimierungsgrad und wundere mich dann darüber, dass das lange dauert?
Woher sollen wir hier wissen, was Du machst. Ich halte 100 GB ZIP/RAR Archive für so leichtsinnig, dass ich sowas schlicht nicht habe. Kippt nur ein Bit des Archivs, sind mit etwas Pech 100GB futsch. Meine Backups (insg. 30GB) sind auch deshalb auf drei Archive aufgeteilt.

Ich dachte da eher an praxistaugliche Tipps, die man schnell umsetzen könnte. Dass ich mir einfach die teuerste CPU, den schnellsten Ram und generell den besten Kram kaufen könnte, DAS ist mir dann wohl auch klar.[/quote}Praxistipp: warten, da es offensichtlich kein professioneller EInsatz ist, sonst wäre die neue HW ganz schnell finanziert.

Zumal ich auch nicht verstehe, was soll eine bessere CPU nutzen?
Schau dir halt ein paar Benchmarkseiten an. Da gibt es auch Tests mit 7zip und manchmal mit Bezahlsoftware (=Winrar).
Der Rest hängt dann von den individuell zu entpackenden Daten ab. Wenn ich 20TB an Textfiles aus einem 100 GB 7z-Archiv entpcke, dauert das länger wie ein unnütz gepacktes 102 GB großes Video.

Die CPU wird doch kaum beansprucht
Dann taugt Deine Softwar nichts. 7z kann locker die 8+8 Kerne meines i9.-9900k ausnutzen. Sowohl beim Packen wie beim Entpacken, wenn die Daten passend sind und Windows nicht beim schreiben der hundertausend Files aus einem 7GB 7z File massiv bremst.

Dir dürfte auch klar sein, dass der P/L Faktor und der Nutzen Faktor da ganz ganz schlecht sind.
MIr ist aber nicht klar, ob das für Dich wichtiger ist wie ein paar Minutenn Warten in Deiner Freizeit. Ich gebe u.U. auch Geld für HW aus, die ich nur in ganz wenigen Situationen wirklich ausnutze. Ob ich im Jahr eine Stunde kürzer oder länger auf Batch-Aktionen warte, ist objetkiv vollkommen egal (es ist reine Freizeit). Mir war diese Freizeit schon vor 6 Jahren den Kauf einer 1TB SSD wert, als die Teile noch 450€ gekostet haben.

Das offensichtlichste muss man hier nicht einwerfen, das bringt auch nichts.
Sorry, aber bei Deinen unvollständigen Information aus dem Ausgangsporting weiss halt niemand, wo er dran ist. Welche Software (Windwos ZIP reagiert komplett anders wie 7z oder u.U. auch WinRar, falls es da noch gibt), welche Daten, welche Kompressionsfaktor? Dazu kommen noch solche Dinge wie die Erfahrung darin, die identischen entpackten Daten einfach mal durch die Gegend zu kopieren (warum sollte ein Entpacken erheblich schneller gehen, es ist aber durchaus möglich, hängt halt von der Art der Daten und von der Systemkonfiguration ab).

Die genannten 10% CPU-Auslastung können 4+4 Kerne mit 10% oder 1 Kern mit 80% sein. Aus der genauen Angabe könnte man zumindest schließen, ob da noch so "neumodisches Zeug" wie ein Live-Virenscanner oder der Index-Dienst im Hintergrund laufen. U.U. nutzt Du auch eine verschlüsselte Partiton.

Mir dauert das alles viel zu lange. Mir is auch mal aufgefallen, mittlerweile lade ich schneller runter als ich entpacken kann, das kann einfach nicht sein
Doch, Du kannst auch keine 240.000 kleinen Dateien (20-30 kb/File) mit 100 MByte/s kopieren. Das schafft Windows einfach nicht, auch wenn ein Laien sowas erwarten würde (aber Trivialitäten kennst Du ja alle)

Und es ist ja shcön sich supertolle, schnelle Festplatten zu kaufen, aber dass dieser Vorteil so aufgefressen wird von CPU und Ram, wovon beide überhaupt nicht ausgelastet sind. Sorry, aber das verstehe ich nicht so richtig.
}Wenn Du Plättchen nur zum Entpacken kaufst, dann ja (aber vieleicht ist es ja eine 2TB 970 EVO). Wenn ich meine Bilder/Videos/VMs kopiere, dann geht das bis zum Erreichen der SLC-Cachegröße locker mit >2 GB/s von NVMe SSD zu NVMe SSD (das wird mein FTTH-Anschluss zu meinen Lebzeiten nicht erreichen). Kopiere ich die erwähnten 240.000 kleinen Dateien, bleiben mit Glück 10-20 MB/s übrig (SSD zu Ramdisk). Was Deine Archive enthalten, weisst nur Du.

So Trivialitäten wie das Entpacken des Archivs nach /dev/null würde Dir zwar u.A. die Erkenntnis bringen, wieviel Leistung das Speichern der entpackten Daten benötigt und welche "Systemsoftware) u.U. alles ausbremst. Aber vermutlich hast Du solche Tests nur deshalb nicht erwähnt, weil sie zu offensichtlich sind.

Entpacke ich ein 6,6 GB großes Archiv mit 240.000 kleinen Dateien real auf die Ramdisk, landet 7zip im Schnitt bei 20% CPU-Auslastung, benötigt 2:08 Min. und wenn ich dabei in den Taskmanager schaue weiss ich, warum das ganze auf meinem alten i7-2600K schneller ging.

Entpacke ich das selbe Archiv ohne die Daten zu speichern, ist er mit 100% Auslastung schon nach 23 Sekunden fertig.

Nachtrag:
Führe ich ein paar Konfigänderungen an Windows 10 1903 durch und entpacke das selbe 6,6 GB Archiv nochmals auf die Ramdisk, benötigt 7zip dafür nur noch 1:05 Min.
Dabei sieht man auch schön im Taskmanager, wann 7zip mit 30-70% CPU-Auslastung arbeitet und wann es von Windows ausgebremst wird, weil selbst die Ramdisk ihre Dateien mit NTFS verwaltet und Windows nicht hinterher kommt.
 
Zuletzt bearbeitet:
Danke für deine ausführliche Antwort Fotoman, das jetzt alles zu zitieren wird aber etwas ausufern(die Krux an den ganzen Zitaten, iwann artet es aus :D)

Nur soviel, "meine" Software ist nicht meine Software, sondern halt Winrar oder 7zip. Ich kann Dateien, die ich nicht selbst gepackt habe, nicht mit jedem Programm entpacken. Eine .rar Datei die mit WinRar gepackt wurde, kann ich nicht mit 7zip entpacken, da bkeomme ich immer Fehlermeldungen zu sehen. 7zip kann ich also nicht immer nutzen, aber ich werde mal drauf achten ob dort die Auslastung besser ist.

Zu den Festplatten(mir fällt grad auf, Signatur ist nicht aktuell) 1. Ist die m2 512GB groß. 2. Ist mein System jetzt auf einer 240GB SSD und die neue SSD ist 500GB groß.

Natürlich kaufe ich mir Festplatten nicht, um schneller zu entpacken. Sondern um schneller zu kopieren/schnellere Ladezeiten, etc :) Das Entpacken ist da eher ein Nebeneffekt, wo ich gehofft habe, dass der auch eintritt. Mag ein Denkfehler gewesen sein, denn wenn sowieso CPU/RAM limitieren, nützt ja auch die schnellste Festplatte nichts. Dann ist natürlich auch klar, dass es keinen großen Unterschied macht auf welcher Festplatte ich entpacke.
Bei dem genannten 100GB Beispiel war es die m2, die komplett leer war.

Bzgl der Tests, nein, das ist natürlich gar nicht offensichtlich. Ram Disk sagt mir gar nichts, ich weiß auch mit deinem /dev/null Befehl nichts anzufangen(müsste ich googlen), aber das ist ja auch nichts offensichtliches. Offensichtlich sind Dinge, die selbstverständlich sind. So wie die Tatsache ,dass wenn ich hier auf diesem Board frage, wie man xyz beschleunigen kann, es natürlich logisch/offensichtlich ist, sich bessere Hardware zu kaufen. Ramdisk und iwelche Befehle, das ist nicht offensichtlich, weil das Kenntnisse erfordert, die schon etwas tiefer gehen. Daher finde ich deine spitzzüngige Bemerkung ziemlich fehl am Platz, denn du weißt auch, dass sowas nicht offensichtlich ist. Du kannst solche Kenntnisse nicht vorraussetzen. Und wenn ein paar Beiträge vorher schon gesagt wird, dass es in meinem Fall nicht richtig zu testen ist, was denkst du, was ich dann mache? Das hat nix mit zu offensichtlich zu tun. Wenn du vo netwas keine Ahnung hast, und jmd anderes sagt, "man könne dies u jenes mal testen", im gleichen Atemzug aber sagt, dass es bei mir wenig Sinn macht, fängst du dann an dich damit zu beschäftigen? ^^ Wohl kaum.

Und wenn es doch Sinn macht, und man als anderer User merkt, mein Gegenüber kennt das nicht, dann erkläre ich es ihm wenigstens, damit er das auch mal testen kann. Deine Testergebnisse sind interessant, ich würde es auch testen, wenn ich weiß, wie.

Aber das hast du sicherlich nur nicht bedacht.

Und wenn man sich mal klar durchlesen würde, was ich genau gefragt habe, würde man erkennen dass es gar nicht darum ging, das Offensichtliche zu besprechen, sondern nur mal zu schauen, ob das aktuelle System irgendwo den Entpackvorgang ausbremst, ob man durch Konfigurationseinstellungen etwas beschleunigen kann und vllt etwas mehr Verständnis dafür bekommen, wie das entpacken genau funktioniert. Ich finde nicht, dass das unklar beschrieben war, man muss sich halt nur die Zeit nehmen, mal mehr als drei Zeilen durchzulesen, dann hätte man das eigentlich verstehen müssen.

Führe ich ein paar Konfigänderungen an Windows 10 1903 durch...

Verrätst du den Unwissenden auf dieser Welt auch was du änderst ...? ^^

PS: Naiv wäre wohl nur zu glauben, es ließe sich irgendwas beschleunigen ohne auch nur an einer Variablen zu drehen.

Das hat aber auch niemand behauptet oder geschrieben. Vllt doch mal einen größeren Bildschirm benutzen? :)
 
Zuletzt bearbeitet:
Zurück