xz、gzip、bzip2のうち、どの圧縮アルゴリズムが最も効率的ですか?


16

xz、gzip、bzip2のうち、かなり大きなtarballを圧縮するときに、どの圧縮アルゴリズムが最小のファイルサイズと最高速を提供しますか?


「最小のファイルサイズになる」などの「最高」?
ヘネス

わからない、私はテストを答えとして追加できるように、どういうわけか質問を言葉で表現しようとしていた。私はこの理由が閉じられた理由も知りません。@Karan
Nathan2055

1
ああ、簡単に閉じられた理由。「ベスト」は非常に主観的であり、通常は議論または非建設的な回答につながります。最適な圧縮は、最小のファイルサイズ、最速の圧縮、圧縮に使用される最小電力(ラップトップなど)、圧縮中のシステムへの影響が最小(コアの1つのみを使用する古代の単一のプログラムなど)、またはその組み合わせです。それらすべての。
ヘネス

読むべき興味深い記事はtomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html(windows ベースで、xz、gz、bzではなく7zip、ma​​gicRAR、WinRAR、WinZipに焦点を当てていますが、それでもなお興味深いです)および背景情報の提供)。
ヘネス

@Hennes-投稿をクリーンアップして、研究しているものに最適なものに置き換えました。また、あなたが言及した記事に感謝します、私は今日後でそれを読みます。
Nathan2055

回答:


15

ストレステストでは、リストされている3つの形式を使用して464メガバイトのデータを圧縮しました。Gzipは364 MBのファイルを返しました。Bzip2は315 MBのファイルを返しました。Xzは254 MBのファイルを返しました。また、簡単な速度テストも行いました。

圧縮:

1:Gzip

2:Xz

3:Bzip2(これが進行中にファンがかなり吹いていたため、Athlon IIがかなり緊張していました)

減圧:

1:Xz

2:Gzip

3:Bzip2

これらのテストはすべて、最新バージョンの7-Zipで行われたことに注意してください。

Xzはバランスの取れた圧縮に最適な形式ですが、Gzipは速度に非常に適しています。Bzip2の圧縮率はまともですが、代わりにxzを使用する必要があります。


2
良い研究。(少なくとも)bzip2が提供するさまざまな圧縮レベルのオプションを試しましたbzip2 -9 <file>か?
アーロンミラー

@AaronMiller-いいえ、7-Zip経由で使用できますか?
Nathan2055

そのように見えますが、どの程度まではわかりません:dotnetperls.com/7-zip-examplesのセクション「Switch m」を参照してください。
アーロンミラー

7
好奇心から、テストファイルはどのようなデータでしたか?
ジェミニドミノ

データタイプが異なると、圧縮サイズも異なることに注意してください。例についてはこちらをご覧ください。
-Ploni

4

1.1GB Linuxインストールvmdkイメージで独自のベンチマークを実行しました。

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

すべての圧縮レベルは最大、CPU Intel I7 3740QM、メモリ32GB 1600、ソースおよびRAMディスク上の宛先

通常、ドキュメントなどの通常のファイルのアーカイブにはrarまたは7zを使用します。
そして、システムファイルをアーカイブするために、-preserveとともに-zまたは-Jオプションとともにfile-rollerまたはtarで.tar.gzまたは.tar.xzを使用して、tarでネイティブに圧縮し、権限を維持します(または.tar.7zまたは.tar.rarを使用できます)

更新:tarはACLを保持せず、通常のアクセス許可のみを保持するため、プレーン.7zに加えて、getfaclおよびsefaclを使用してアクセス許可とACLを手動でバックアップおよび復元することもできます。パーミッションとACLを保持し、チェックサム、整合性テスト、暗号化機能を備えています。欠点は、p7zipがどこでも利用できないことです


学生、rarのオプションは何でしたか?kolivasのlrzipを試してみてください。仮想ディスクイメージに適しているはずです。
osgx

私はRARからGitに移行しており、テキストファイルの場合はtarball、その他の場合はbtrfsに移行しています。RARを使用する理由はパフォーマンスではありません。リカバリレコード、すべてのファイルの個別のファイルレベル256ビットチェックサムなどの機能のために使用しています。
-Sudoer

3

この記事は非常に興味深い結果をもたらすと思います。

http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

最もサイズ効率の良い形式はxzとlzmaで、両方とも-eパラメーターが渡されます。

最速のアルゴリズムはlzopとlz4であり、1.3秒でgzipからそれほど遠くない圧縮レベルを生成できますが、gzipでは8.1秒かかりました。圧縮率は、lz4では2.8、gzipでは3.7です。

この記事から抽出したいくつかの結果を以下に示します。

  • Gzip:8.1s @ 3.7

  • lz4:1.3秒@ 2.8

  • xz:32.2s @ 5.43

  • xz -e:6m40 @ 7.063

  • xz:4分51秒@ 7.063

そのため、本当に必死に速度が必要な場合、lz4は素晴らしく、2.8の圧縮率を提供します。

必死にバイトを節約する必要がある場合、最大圧縮レベル(9)のxzは、カーネルソースのようなテキストファイルに最適な仕事をします。ただし、非常に長く、多くのメモリを必要とします。

時間とスペースへの影響を最小限に抑えるために必要なのは、gzipです。これは、実稼働環境の毎日の手動バックアップを作成するために使用するものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.