Der beste Packer zur Komprimierung – Klimaschutz auf kernel.org
Allgemein/Internet, Linux/OpenSource Februar 18th, 2008Der beste Packer – vermutlich eine Diskussion wie emacs vs. vi, doch kann man im Gegensatz zu Editoren ein paar Tests anstellen und das ganze objektiv unter die Lupe nehmen.
Gesagt getan, es geht darum den Packer mit der besten Kompression zu finden. Oder doch nicht? Nach intensiver Beschäftigung mit der Problematik (und ersten Ergebnissen wie hier Compression: gzip vs bzip2 vs 7-zip) kommt man zu dem Ergebnis, dass es verschiedene Faktoren gibt, die den Einsatz des Verfahrens bestimmen.
- Benötige CPU Zeit zum Packen
- Benötigter Speicher zum Komprimieren
- Erzielte Platzersparnis
- Benötigte CPU Zeit zum Dekomprimieren
- Speicher der zum Entpacken benötigt wird.
Dabei ist die erzielte Platzersparnis natürlich abhängig davon, was für Daten gepackt werden. Gut komprimierbar sind Texte und HTML Datein, weniger gut bis garnicht kleiner zu komprimieren sind MP3 Dateien und ähnliche vorgepackte Daten.
Für spezielle Anwendungsfälle gibt es natürlich auch spezielle Kompressionsverfahren, die dann auch deutlich besser arbeiten. (Z.B. FLAC um Audio Daten verlustfrei zu komprimieren.)
Ich habe einen öhnlichen Versuch durchgeführt, Grundlage war das Tar Archiv von Linux 2.6.24.2
Die Tests wurden auf einem Ubuntu Gutsy 64bit mit AMD X2 Prozessor durchgeführt.
Größe der unkomprimierten Datei: 261 MB
7zip: 3:40m (real: 2:34m): 39 MB. Auspacken dauert 7 Sekunden (real: 8 Sekunden)
bzip: 1:17m (real: 1:18): 45 MB. Auspacken: 16 Sekunden (real: 17 Sekunden)
bzip –best: 1:15m (real 1:15): 45 MB, Auspacken: 16 Sekunden (real: 17 Sekunden)
gzip: 0:14m (real 0:14): 57 MB, Auspacken: 2.5 Sekunden (real: 3.5 Sekunden)
gzip –best: 0:29 (real: 0:30): 57 MB, Auspacken: 2.5 Sekunden (real: 3.5 Sekunden)
7zip -t7z -m0=lzma -mx=9 -mfb=64 -md=64m -ms=on: 4:48m (real: 3:24): 37 MB, Auspacken dauert 6 Sekunden (real: 7 Sekunden)
Es gilt daher für den jeweilligen Anwendungsfall das richtige Verfahren bzw. Programm zu wählen. Gzip ist sehr schnell und kann als quasi Echtzeitpacker für on-the-fly Kompression eingesetzt werden. (Z.B. um Webseiten schneller auszuliefern)
7zip mit dem LZMA Algorithmus ist dann zu empfehlen, wenn man Dinge einmal packt, um sie dann zu verteilen. Dabei kann 7zip von beiden Kernen Gebrauch machen, und so deutliche Beschleunigung erzielen.
Bzip2 – naja. Evolution fordert Opfer.
Was bedeutet das z.B. für kernel.org? Der Wechsel auf 7zip (GPL Software) könnte 10-20% Bandbreite sparen, je nachdem wie viele User sich für das mit 7zip gepackte Format entscheiden.
Dazu kommen die Einsparungen an CPU Zeit die beim Entpacken mit 7zip nicht anfallen. Ein Beitrag zum Klimaschutz.
Februar 18th, 2008 at 17:32
Compression: gzip vs bzip2 vs 7-zip…
Today I had a look at the different options to compress files (in this case for backup purposes) on a Ubuntu system. The most common tools to compress files are gzip and bzip2. They have both been around for a long time, are available on most systems…
Februar 19th, 2008 at 02:13
Ich wäre ja für eine ordentliche Balkengrafik, aber vielleicht sind meine Augen und mein Hirn um diese Zeit auch nicht mehr klar genug, um die Zahlen so zu verstehen ;).
Ich hab Dich mal ganz frech mit einem Stöckchen beworfen:
http://www.b-a-l-u.de/index.php/Blog/2008-02-19-Stoeckchen