Welcher Komprimierungsalgorithmus ist zwischen xz, gzip und bzip2 am effizientesten?

16

Welcher Komprimierungsalgorithmus ergibt zwischen xz, gzip und bzip2 die kleinste Dateigröße und die schnellste Geschwindigkeit beim Komprimieren größerer Tarballs?

Nathan2055
quelle
'das beste' wie in 'mit der kleinsten Dateigröße'?
Hennes
Ich weiß nicht, ich habe versucht, eine Möglichkeit zu finden, die Frage zu formulieren, damit ich meinen Test als Antwort hinzufügen kann. Ich habe auch keine Ahnung, warum dieses Ding geschlossen wurde. @ Karan
Nathan2055
1
Oh, warum wurde es einfach geschlossen. "Best" ist sehr subjektiv und führt normalerweise zu Diskussionen oder nicht konstruktiven Antworten. Die beste Komprimierung kann die kleinste Dateigröße, die schnellste Komprimierung, die geringste zum Komprimieren verwendete Leistung (z. B. auf einem Laptop), der geringste Einfluss auf das System beim Komprimieren (z. B. alte Single-Treaded-Programme, die nur einen der Kerne verwenden) oder eine Kombination sein von all diesen.
Hennes
Ein interessanter Artikel ist tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html (Windows-basiert und auf 7zip, magicRAR, WinRAR und WinZip anstatt xz, gz oder bz ausgerichtet, aber immer noch interessant und Bereitstellung von Hintergrundinformationen).
Hennes
@Hennes - Ich habe den Beitrag aufgeräumt, um genau das zu ersetzen, was ich recherchiert habe. Außerdem danke ich Ihnen für den Artikel, den Sie erwähnt haben. Ich werde ihn später lesen.
Nathan2055

Antworten:

15

In meinem Stresstest habe ich 464 Megabyte Daten mit den drei aufgelisteten Formaten komprimiert. Gzip hat eine 364 MB große Datei zurückgegeben. Bzip2 gab eine 315 MB-Datei zurück. Xz hat eine 254 MB große Datei zurückgegeben. Ich habe auch einen einfachen Geschwindigkeitstest gemacht:

Kompression:

1: Gzip

2: Xz

3: Bzip2 (mein Lüfter hat währenddessen ziemlich stark geblasen, was darauf hinweist, dass mein Athlon II ziemlich überlastet war)

Dekompression:

1: Xz

2: Gzip

3: Bzip2

Bitte beachten Sie, dass alle diese Tests mit der neuesten Version von 7-Zip durchgeführt wurden.

Xz ist das beste Format für eine abgerundete Komprimierung, während Gzip für die Geschwindigkeit sehr gut ist. Bzip2 ist für sein Kompressionsverhältnis anständig, obwohl xz wahrscheinlich an seiner Stelle verwendet werden sollte.

Nathan2055
quelle
2
Gute Forschung. Haben Sie die verschiedenen Komprimierungsstufenoptionen von (mindestens) bzip2 ausprobiert, z bzip2 -9 <file>.
Aaron Miller
@AaronMiller - Nein, ist es möglich, diese über 7-Zip zu nutzen?
Nathan2055
Es sieht so aus, obwohl ich nicht sicher bin, inwieweit: siehe dotnetperls.com/7-zip-example , Abschnitt "Switch m".
Aaron Miller
7
Welche Art von Daten war die Testdatei aus Neugier?
GeminiDomino
Beachten Sie, dass unterschiedliche Datentypen zu unterschiedlichen komprimierten Größen führen. Beispiele finden Sie hier .
Ploni
4

Ich habe meinen eigenen Benchmark für das vmdk-Image der 1.1GB Linux-Installation erstellt:

rar    =260MB   comp= 85s   decomp= 5s
7z(p7z)=269MB   comp= 98s   decomp=15s
tar.xz =288MB   comp=400s   decomp=30s
tar.bz2=382MB   comp= 91s   decomp=70s
tar.gz =421MB   comp=181s   decomp= 5s

Alle Komprimierungsstufen auf max, CPU Intel I7 3740QM, Speicher 32 GB 1600, Quelle und Ziel auf RAM-Platte

Normalerweise verwende ich rar oder 7z zum Archivieren normaler Dateien wie Dokumente.
und für die Archivierung von Systemdateien verwende ich .tar.gz oder .tar.xz per File-Roller oder Tar mit den Optionen -z oder -J zusammen mit --preserve, um nativ mit Tar zu komprimieren und Berechtigungen beizubehalten (auch alternativ .tar.7z oder .tar.rar kann verwendet werden)

update: da tar ohnehin nur normale Berechtigungen und keine ACLs beibehält, können auch reine .7z plus-Berechtigungen und ACLs manuell über getfacl und sefacl gesichert und wiederhergestellt werden Berechtigungen und ACLs beibehalten, Prüfsumme, Integritätstest und Verschlüsselungsfähigkeit, der einzige Nachteil ist, dass p7zip nicht überall verfügbar ist

Sudoer
quelle
Student, was waren Optionen von rar? Warum versuchen Sie nicht lrzip von kolivas , es sollte gut für virtuelle Festplatten-Images funktionieren.
osgx
Ich migriere von RAR zu Git und Tarballs für meine Textdateien und BTRFS für alles andere. Mein Grund für die Verwendung von RAR ist nicht die Leistung, ich benutze es wegen Funktionen wie Wiederherstellungsaufzeichnung, separate 256-Bit-Prüfsumme auf Dateiebene für jede Datei und ....
Sudoer
3

Ich denke, dass dieser Artikel sehr interessante Ergebnisse liefert.

http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

Die Formate mit der größten Effizienz sind xz und lzma, beide mit dem übergebenen Parameter -e.

Die schnellsten Algorithmen sind mit Abstand lzop und lz4, die in 1,3 Sekunden einen Komprimierungsgrad erzeugen können, der nicht weit von gzip entfernt ist, während gzip 8,1 Sekunden dauerte. Das Kompressionsverhältnis beträgt 2,8 für lz4 und 3,7 für gzip.

Hier sind einige Ergebnisse, die ich aus diesem Artikel extrahiert habe:

  • Gzip: 8,1s @ 3,7

  • lz4: 1,3s @ 2,8

  • xz: 32,2 s @ 5,43

  • xz -e: 6m40 @ 7.063

  • xz: 4m51s @ 7.063

Wenn Sie also dringend Geschwindigkeit brauchen, ist lz4 fantastisch und bietet trotzdem ein Kompressionsverhältnis von 2,8.

Wenn Sie dringend das Byte sparen müssen, erledigt xz mit der maximalen Komprimierungsstufe (9) die beste Arbeit für Textdateien wie die Kernelquelle. Es ist jedoch sehr lang und benötigt viel Speicher.

Ein guter Weg, um den Einfluss auf Zeit UND Raum zu minimieren, ist gzip. Dies ist die, die ich verwenden würde, um manuelle tägliche Backups einer Produktionsumgebung zu erstellen.

Johnride
quelle