Untuk mendistribusikan arsip melalui Internet, hal-hal berikut umumnya menjadi prioritas:
- Rasio kompresi (yaitu, seberapa kecil kompresor membuat data);
- Waktu dekompresi (persyaratan CPU);
- Persyaratan memori dekompresi; dan
- Kompatibilitas (seberapa luas program dekompresi)
Memori kompresi & persyaratan CPU tidak terlalu penting, karena Anda dapat menggunakan mesin cepat besar untuk itu, dan Anda hanya perlu melakukannya sekali.
Dibandingkan dengan bzip2, xz memiliki rasio kompresi yang lebih baik dan waktu dekompresi yang lebih rendah (lebih baik). Namun, pada pengaturan kompresi yang biasanya digunakan - membutuhkan lebih banyak memori untuk didekompresi [1] dan agak kurang luas. Gzip menggunakan lebih sedikit memori daripada keduanya.
Jadi, arsip format gzip dan xz diposting, memungkinkan Anda untuk memilih:
- Perlu mendekompres pada mesin dengan memori yang sangat terbatas (<32 MB): gzip. Diberikan, sangat tidak mungkin ketika berbicara tentang sumber kernel.
- Perlu mendekompresi alat minimal yang tersedia: gzip
- Ingin menghemat waktu pengunduhan dan / atau bandwidth: xz
Sebenarnya tidak ada kombinasi faktor realistis yang membuat Anda memilih bzip2. Jadi itu dihapus.
Saya melihat perbandingan kompresi di posting blog . Saya tidak mencoba mereplikasi hasil, dan saya menduga beberapa di antaranya telah berubah (kebanyakan, saya berharap xz
telah membaik, sebagai yang terbaru.)
(Ada beberapa skenario khusus di mana implementasi bzip2 yang baik mungkin lebih disukai daripada xz: bzip2 dapat memampatkan file dengan banyak nol dan urutan genom DNA lebih baik daripada xz. Versi xz yang lebih baru sekarang memiliki mode blok (opsional) yang memungkinkan pemulihan data setelah titik korupsi dan kompresi paralel dan [dalam teori] dekompresi. Sebelumnya, hanya bzip2 yang menawarkan ini. [2] Namun tidak ada yang relevan untuk distribusi kernel)
1: Dalam ukuran arsip, xz -3
ada sekitar bzip -9
. Kemudian xz menggunakan lebih sedikit memori untuk melakukan dekompresi. Tetapi xz -9
(seperti, misalnya, digunakan untuk tarbal kernel Linux) menggunakan lebih dari bzip -9
. (Dan bahkan xz -0
membutuhkan lebih dari gzip -9
).
2: Perubahan Luas Sistem F21: lbzip2 sebagai implementasi bzip2 default