インターネット経由でアーカイブを配布する場合、一般的に次のことが優先されます。
- 圧縮率(つまり、コンプレッサーがデータをどの程度小さくするか)。
- 解凍時間(CPU要件);
- 解凍メモリ要件。そして
- 互換性(解凍プログラムの普及度)
圧縮メモリとCPUの要件はそれほど重要ではありません。そのために大型の高速マシンを使用でき、一度だけ実行すればよいからです。
bzip2と比較して、xzはより良い圧縮率とより短い(より良い)解凍時間を持っています。ただし、通常使用される圧縮設定では、解凍するためにより多くのメモリが必要です[1]。Gzipはどちらよりも少ないメモリを使用します。
そのため、gzip形式とxz形式の両方のアーカイブが投稿され、以下を選択できます。
- メモリが非常に限られている(<32 MB)マシンで解凍する必要がある:gzip。与えられた、カーネルソースについて話すときはあまりありません。
- 利用可能な最小限のツールを解凍する必要があります:gzip
- ダウンロード時間や帯域幅を節約したい:xz
実際には、bzip2を選択する要因の現実的な組み合わせはありません。そのため、段階的に廃止されます。
ブログ投稿で圧縮の比較を見ました。結果を再現しようとはしませんでしたが、その一部が変更されたのではないかと疑っています(主にxz
、最新のものとして改善されたと思います)。
(適切なbzip2実装がxzよりも望ましい特定のシナリオがいくつかあります:bzip2は、多くのゼロとゲノムDNAシーケンスを含むファイルをxzよりも圧縮できます。xzの新しいバージョンには、データ回復を可能にする(オプション)ブロックモードがあります破損および並列圧縮と[理論上]解凍のポイントの後。以前は、bzip2のみがこれらを提供していました。[2]ただし、これらのいずれもカーネルの配布に関連しません)
1:アーカイブサイズxz -3
は約bzip -9
です。次に、xzは解凍するメモリを少なくします。しかしxz -9
(たとえば、Linuxカーネルのtarballに使用されるように)は、をはるかに超えて使用しbzip -9
ます。(そして、さらにxz -0
必要ですgzip -9
)。
2:F21システム全体の変更:デフォルトのbzip2実装としてのlbzip2