Для розповсюдження архівів через Інтернет загалом пріоритетними є такі речі:
- Коефіцієнт стиснення (тобто, наскільки малий компресор робить дані);
- Час декомпресії (вимоги ЦП);
- Вимоги до декомпресійної пам'яті; і
- Сумісність (наскільки широко розповсюджена програма декомпресії)
Пам'ять щодо стиснення та вимоги до процесора не дуже важливі, тому що ви можете використовувати для цього велику швидку машину, і робити це потрібно лише один раз.
У порівнянні з bzip2, xz має кращий коефіцієнт стиснення та менший (кращий) час декомпресії. Однак, за типових параметрів стиснення, для декомпресії потрібна більше пам'яті [1] і є дещо менш поширеною. Gzip використовує менше пам'яті, ніж будь-який.
Отже, розміщуються як архіви формату gzip, так і xz, що дозволяє вибирати:
- Потрібно розпакувати на машині з дуже обмеженою пам'яттю (<32 МБ): gzip. Дано, не дуже ймовірно, коли йдеться про джерела ядра.
- Потрібно розпакувати мінімально доступні інструменти: gzip
- Хочете заощадити час завантаження та / або пропускну здатність: xz
Насправді не існує реалістичного поєднання факторів, які б змусили вас вибрати bzip2. Тож його припиняють.
Я подивився на порівняння стиснення в публікації в блозі . Я не намагався повторити результати, і підозрюю, що деякі з них змінилися (в основному, я думаю xz
, покращилися, як найновіші.)
(Є деякі конкретні сценарії, коли хороша реалізація bzip2 може бути кращою для xz: bzip2 може стискати файл з великою кількістю нулів і послідовностей ДНК геном краще, ніж xz. Новіші версії xz тепер мають (необов'язковий) блок-режим, що дозволяє відновити дані після пошкодження та паралельного стиснення та [теоретично] декомпресії. Раніше лише bzip2 пропонував це. [2] Однак жодне з них не має значення для розподілу ядра)
1: За розміром архіву, xz -3
є навколо bzip -9
. Тоді xz використовує менше пам'яті для декомпресії. Але xz -9
(як, наприклад, використовується для тарболів ядра Linux) використовується набагато більше, ніж bzip -9
. (І навіть xz -0
потрібно більше gzip -9
).
2: Широка зміна системи F21: lbzip2 як реалізація bzip2 за замовчуванням