Bei der Verteilung von Archiven über das Internet haben im Allgemeinen die folgenden Punkte Priorität:
- Kompressionsverhältnis (dh wie klein der Kompressor die Daten macht);
- Dekomprimierungszeit (CPU-Anforderungen);
- Speicheranforderungen für die Dekomprimierung; und
- Kompatibilität (wie weit verbreitet das Dekomprimierungsprogramm ist)
Die Anforderungen an den Komprimierungsspeicher und die CPU sind nicht sehr wichtig, da Sie dafür eine große schnelle Maschine verwenden können und dies nur einmal tun müssen.
Im Vergleich zu bzip2 hat xz ein besseres Komprimierungsverhältnis und eine niedrigere (bessere) Dekomprimierungszeit. Bei den normalerweise verwendeten Komprimierungseinstellungen wird jedoch mehr Speicher zum Dekomprimieren benötigt [1] und ist etwas weniger verbreitet. Gzip benötigt weniger Speicher als beide.
Daher werden sowohl Archive im gzip- als auch im xz-Format gepostet, sodass Sie Folgendes auswählen können:
- Muss auf einem Computer mit sehr begrenztem Speicher (<32 MB) dekomprimiert werden : gzip. Gegeben, nicht sehr wahrscheinlich, wenn es um Kernelquellen geht.
- Es müssen nur wenige Tools dekomprimiert werden: gzip
- Möchten Sie Download-Zeit und / oder Bandbreite sparen: xz
Es gibt nicht wirklich eine realistische Kombination von Faktoren, die Sie dazu bringen würden, bzip2 auszuwählen. Also wird es auslaufen.
In einem Blog-Beitrag habe ich mir Komprimierungsvergleiche angesehen . Ich habe nicht versucht, die Ergebnisse zu replizieren, und ich vermute, dass sich einiges davon geändert hat (meistens habe ich damit gerechnet, dass es xz
sich verbessert hat, da es das neueste ist.)
(Es gibt einige spezifische Szenarien, in denen eine gute bzip2-Implementierung gegenüber xz vorzuziehen ist: bzip2 kann eine Datei mit vielen Nullen und Genom-DNA-Sequenzen besser komprimieren als xz. Neuere Versionen von xz verfügen jetzt über einen (optionalen) Blockmodus, der die Datenwiederherstellung ermöglicht nach dem Punkt der Korruption und parallel Kompression und [theoretisch] Dekompression. Zuvor bot nur bzip2 diese. [2] jedoch keines von diesem für kernel Verteilung relevant ist)
1: In Archivgröße xz -3
ist um bzip -9
. Dann benötigt xz weniger Speicher zum Dekomprimieren. Aber xz -9
(wie z. B. für Linux-Kernel-Tarballs verwendet) verwendet viel mehr als bzip -9
. (Und xz -0
braucht sogar mehr als gzip -9
).
2: F21 System Wide Change: lbzip2 als Standard bzip2 Implementierung