gzip und bzip2 Geschwindigkeit
gzip und bzip2 sind heute die am häufigsten eingesetzten Komprimierungsprogramm unter Linux. Ich möchte hier ein paar Ergebnisse meines Geschwindigkeitsvergleichs dieser beiden Programme vorstellen.
Für unsere Suchmaschine Neomo müssen wir oft möglichst effektiv sehr große Dateien komprimieren. Wobei effektiv für uns bedeutet, dass sowohl die Kompressionsrate wie auch die Laufzeit eine hohe Bedeutung haben. Oder anders formuliert: Die Dateien können gerne etwas größer sein, wenn dafür die Ausführungsgeschwindigkeit deutlich höher ist.
Ich habe dazu auf einem Debian-Server (Dual-Xeon 2.7GHz-System, 2 GB RAM, IDE-RAID 5) ein paar kleine Pseudo-Benchmarks durchgeführt.
Datei 1: Binärdatei (BerkeleyDB-File), Größe 1.3 GB
Programmaufruf: gzip -1
Laufzeit: 69 s
Dateigröße: 396 MB
Komprimierungsrate: 69,7%
Programmaufruf: gzip -9
Laufzeit: 245 s
Dateigröße: 347 MB
Komprimierungsrate: 73,4%
Programmaufruf: bzip2 -1
Laufzeit: 303 s
Dateigröße: 315 MB
Komprimierungsrate: 75,8%
Programmaufruf: bzip2 -9
Laufzeit: 450 s
Dateigröße: 261 MB
Komprimierungsrate: 80,0%
Datei 2: Textdatei (URLs, alphabetisch sortiert, ca. 18 Mio. Zeilen), Größe 1.2 GB
Programmaufruf: gzip -1
Laufzeit: 60 s
Dateigröße: 146 MB
Komprimierungsrate: 87,4%
Programmaufruf: gzip -9
Laufzeit: 121 s
Dateigröße: 120 MB
Komprimierungsrate: 89,6%
Programmaufruf: bzip2 -1
Laufzeit: 353 s
Dateigröße: 117 MB
Komprimierungsrate: 89,9%
Programmaufruf: bzip2 -9
Laufzeit: 557 s
Dateigröße: 115 MB
Komprimierungsrate: 90,1%
(Die Komprimierungsrate berechnet sich aus den “eingesparten” Bytes geteilt durch die Anzahl der Bytes des Originals.)
Wie man an den Daten sieht, komprimiert bzip2 teils deutlich stärker als gzip. Allerdings wird dies durch eine weitaus längere Laufzeit erreicht. Deshalb muss die Frage, welches Tool besser sei, weiterhin unbeantwortet bleiben: Es kommt halt drauf an …
Ist das Ziel, in einer zeitkritischen Anwendung den Plattenbedarf etwas zu minimieren, ist gzip -1 eine gute Wahl. Soll hingegen eine Datei über eine langsame Internetanbindung gesendet werden, kann sich die längere Laufzeit von bzip2 -9 durch die dann kürzeren Übertragungszeiten wieder rechnen.
Save This Page