Zip und Zop
Aktuelle Komprimierprogramme in der Übersicht
Ergebnisse deuten
In Bezug auf die Größe der gepackten Datei gibt es einen klaren Sieger. Der Packer Paq8l staucht die etwa 40,1 MByte große Original-Datei mit der Option -7 auf 2,82 MByte oder etwa 7 Prozent zusammen (Abbildung 4). Er braucht dazu jedoch selbst auf einen Intel Nehalem i7 980 mit sechs Kernen, von denen er allerdings nur einen nutzt, sowohl beim Packen als auch beim Entpacken über eine Stunde. Das entspricht einer Pack-Geschwindigkeit von etwa 10 KByte/s (Abbildung 5).
Auch die anderen Paq-Varianten gehören zu den langsamen, stark komprimierenden Packern, während alle anderen Packprogramme weniger als eine Minute benötigen, jedoch auch größere Dateien abliefern. Am schnellten geht Lzop mit dem Parameter -3 zu Werke, erreicht jedoch mit 15,67 MByte nur gut 39 Prozent der Größe der Originaldatei.
Die LZMA-basierten Programme 7zip, Lzma, dessen Nachfolger Xz sowie Lrzip bieten mit Packzeiten von wenigen Sekunden und Dateigrößen von 4 bis 5 MByte bei stärkeren Pack-Optionen einen guten Kompromiss aus Dateigröße und Geschwindigkeit.
Nur die Bzip2-Varianten Pbzip2 und Lbzip2 nutzen sowohl beim Packen als auch beim Entpacken via Multithreading die Fähigkeiten des Mehrkern-Prozessors, wobei Lbzip2 etwas besser skaliert (Abbildung 6). Der Prozessor bietet sechs Kerne mit Hyperthreading, was zwölf virtuellen Kernen mit je bis zu 100 Prozent Prozessorauslastung entspricht.
Fazit
Bei der Auswahl eines Packprogrammes spielen neben Performance- und Effizienz-Kriterien auch dessen Verbreitung eine Rolle. Im Linux-Umfeld haben Gzip und Bzip2 eine hohe Verbreitung. Die Multithreading-Alternativen Lbzip2 und Pbzip2 sind zu Bzip2 kompatibel. Einen guten Kompromiss zwischen Dateigröße und Geschwindigkeit liefern die LZMA-basierten Packprogramme, von denen 7-Zip und Xz zu den Bekannteren gehören – letzteres hatten Linux-Entwickler schon als Ersatz für Bzip2 im Gespräch.
Möglichst kleine Dateien in relativ kurzer Zeit liefert Zp mit der Option c3. Wo es mehr auf Geschwindigkeit als auf Platzersparnis ankommt, zum schnellen Entpacken einer Initial Ramdisk beispielsweise, eignet sich Lzop.
Da die Ergebnisse von der Art der Daten abhängen, empfiehlt es sich, Packbench mit den Wunschdaten zu testen. Mit der entsprechenden Konfigurartion misst das Skript auch die Effizienz von Audio- und Videocodecs oder Bild-Optimierern wie Optipng.
Glossar
Threads
Leichtgewichtige Alternativen zu normalen Prozessen.
CSV
Comma/Character Separated Values. Dateiformat mit durch ein Komma oder ein anderes Zeichen getrennten Werten.
Initial Ramdisk
Gepacktes Dateisystem mit Kernel-Module und Skripten, um beim Start eines modularen Kernels die passenden Treiber nachzuladen.
Infos
[1] Huffman-Code: http://de.wikipedia.org/wiki/Huffman-Code#Huffman-Code
[2] Bzip2: http://de.wikipedia.org/wiki/Bzip2
[3] Wörterbuchkompression: http://de.wikipedia.org/wiki/Wörterbuchkompression
[4] LZ77: http://de.wikipedia.org/wiki/LZ77
[5] Rar: http://en.wikipedia.org/wiki/Rar
[6] PAQ: http://de.wikipedia.org/wiki/PAQ
[7] PAQ-Homepage: http://cs.fit.edu/~mmahoney/compression/
[8] Tar: Heike Jurzik "Verpackungskünstler", LinuxUser 10/2005, S. 93 http://www.linux-user.de/ausgabe/2005/10/093-zubefehl/
[9] Packbench: http://martin-steigerwald.de/computer/programme/packbench/
[10] Projektseite auf Gitorious: http://gitorious.org/packbench



