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?
'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.
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
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.
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.
Antworten:
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.
quelle
bzip2 -9 <file>
.Ich habe meinen eigenen Benchmark für das vmdk-Image der 1.1GB Linux-Installation erstellt:
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
quelle
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
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.
quelle