Welcher Komprimierungsalgorithmus ergibt zwischen xz, gzip und bzip2 die kleinste Dateigröße und die schnellste Geschwindigkeit beim Komprimieren größerer Tarballs?
Welcher Komprimierungsalgorithmus ergibt zwischen xz, gzip und bzip2 die kleinste Dateigröße und die schnellste Geschwindigkeit beim Komprimieren größerer Tarballs?
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.
bzip2 -9 <file>
.
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
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.