it-swarm-ja.tech

どのアーカイブ/圧縮形式ですか?

Zip、Rar、7z、Gzip、BZip2、Tarなど。7zが今月のフレーバーだと聞いていますが、なぜですか?すべての状況に最適ですか、それとも特定の状況に適した選択肢がありますか。

または、実際のファイルアーカイバ、つまりWinZip、WinRar、7Zipなど(形式ではなく)の方が効果が大きいのでしょうか。

あなたの答えでは、あなたが言及したフォーマットがどのような速度/圧縮のトレードオフを使用するかを説明できますか?.

あなたの答えを裏付ける経験的テストへのリンクを提供してください。

背景:約3000個の比較的小さなファイル(10MB未満)を作成するカスタム検索インデックスをバックアップする必要があります。各ファイルには、多くの反復データが含まれています。

(いつものようにウィキペディアには 関連記事 がありますが、パフォーマンス比較のセクションは簡単です。)

ありがとう

8
Ash

Compress、Gzip、Bzip、Bzip2は、複数のファイルをアーカイブするためのものではありません。それらは単一のファイルのみを圧縮します。アーカイブには、通常TARで使用されます。 TARの問題は、インデックステーブルがないことです。 全体のものを復元することを計画している場合にのみ有効です。選択した限られた数のファイルのみを復元する必要があると予想される場合は、TARを忘れてください。 tar.gzまたはtar.bz2アーカイブから最後のファイルを取得するには、そのファイルのすべてすべてを解凍して処理する必要があります。 Zip、rar、または7-Zipの場合、インデックステーブルに移動し、アーカイブの関連する位置にスキップして、関連するファイルのみを処理します。

OK、TARが出たので、Zip、RAR、7-Zipが残ります。これら3つのうち、Zipが最も普及しており、ほとんどすべてがZipをサポートしており、多くのアプリケーションにサポートが組み込まれています。そして、それは速いです。一方、7-Zipも移植可能であり、ライブラリはLGPLであり、他の2つよりもはるかに優れた圧縮率を備えており、CPUの消費量が増えるというコストがかかります。 RARはそこでは真の敗者であり、優れた圧縮も、実際の移植性も、高速でもありません。

編集:最良のオプションは7-Zipであるようですが、bzip2圧縮方式を使用します。この方法では、TARの欠点はありませんが、bzip2マルチコアサポートを利用できます。 この記事を参照してください。

14
vartec

推奨読書:

マルチコア時代のファイル圧縮 (Jeff Atwood a.k.a. CodingHorror、2009年2月)

Stack Overflowで毎日非常に大きなバックアップファイルを生成するため、ファイル圧縮を少し試しました。

データベースサーバーでは、最新の64ビットバージョンの7Zip(4.64)を使用しています。私はデスクトップのデュアルコア以上の大ファンではありませんが、サーバーにとっては簡単です。 CPUコアが多ければ多いほど楽しいです!このサーバーには2つのクアッドコアCPU、合計8コアがあり、RARも7Zipも2つ以上をあまり使用していないように見えることに少しがっかりしました。

それでも、圧縮に2コアしか使用しない場合でも、7Zipアルゴリズムは驚くほど効果的であり、ここ数年でかなり高速に進化しています。以前はZipよりもRARを推奨していましたが、7Zipの効率が向上し、無料でRARが無料であるという事実を考えると、今では論理的な選択です。

そしてアルゴリズムに関して:

Bzip2が7zipよりもはるかに高速に動作するのはなぜですか? [...] Bzip2は、2つ以上のCPUコアを使用して作業を並列化します。

10
splattne

効率とスピードだけではありません。確かにそれらは重要であり、それらのベンチマークを見て、オプションから賢明に選択することができます(ただし、独自のサーバー上の独自のデータを使用した独自の簡単なベンチマークをお勧めします)。しかし、アーカイブは必然的に、ある時点でデータに再びアクセスすることにつながります(そうでなければ、単にデータを削除しないのはなぜですか?)。あるいは、数年後には、データにアクセスするのではなく、第三者にアクセスすることになるかもしれません。あなたがデータにアクセスする必要があるときに周りにあるものと人々が認識するものを選んでください。私は個人的に7Zipを使用していますが、ファイルをアーカイブするときは、他の人がZipを使用する必要があるかもしれません。彼らはそれを知っています、多くのツールがそれを扱うことができます。それはそれほど速くも小さくもないかもしれませんが、それは人的要因に役立ちます。

4
Joshua Hunter

lzmaは、圧縮率と速度の両方で非常にうまく機能しているようです。

次の http://tukaani.org/lzma/benchmarks ベンチマークでは、lzmaの最速設定により、最速のbzip2オプションよりもかなり高速な圧縮時間が得られましたが、最も遅いbzip2オプションよりも優れた圧縮が得られました。

比率bzip2lzmash 
最速35.8%31.7%
最遅34.0%25.4%
 
時間bzip2lzmash 
最速1m26s 0m 58秒
最も遅い2分37秒12分20秒
 
 * Linux用OpenOffice.org1.1.4のフルインストールの圧縮(203 MB)

バイナリデータで特にうまく機能しますが、bzip2がそれを上回ったプレーンテキストのベンチマークをいくつか読んだと思います。

Lzmaのmanページは読む価値があります:

   lzma  provides  notably  better compression ratio than bzip2 especially
   with files having other than plain text content. The other advantage of
   lzma  is fast decompression which is many times quicker than bzip2. The
   major disadvantage is that achieving  the  highest  compression  ratios
   requires  extensive  amount of system resources, both CPU time and RAM.
   Also software to handle LZMA  compressed  files  is  not  installed  by
   default on most distributions.
3
Guy C

これを見てください ウィキペディアのエントリ 。下に向かって、「効率の比較」。おおよその圧縮率と所要時間がわかります。これらの数値はすべて、使用されているマシンの速度、メモリの量などに基づいて(速度的に)異なります。

その他の圧縮ベンチマーク:

2
user1797

Zip、7z、rarを2つのケースと比較する

正確に何を圧縮しているかによって異なりますが、一般に7zは複数のプロセッサをより有効に活用し、7z圧縮形式自体はZipよりも高く、場合によってはrarよりも高くなります(rarと7zはほぼ同等ですが、rarはそうではありません)無料ではありません...)

数ヶ月前の私のテストでは、次の結果が得られました。

単一の10MBアクセスデータベースファイルの圧縮:

Database.mdb 17,240,064 (original)
Database.Zip  1,634,794 (Regular Zip, 11:1)
Database.rar    262,212 (RAR compression, 66:1)
Database.7z     195,678 (7-Zip compression, 88:1)

さまざまなタイプ(903,488KB)の9000を超えるファイルを含むフォルダーを圧縮すると、次のようになります(これは、開発中のソフトウェア用のソースコードとそれを取り巻くすべてのツールの組み合わせです)。

Type   Time  Size (KB)  Compression
Zip    7:28   247,529   3.7:1
RAR    8:15   222,232   4.1:1
7z    10:49   181,633   5.0:1

時間の目的で、これはCore2 Duo、2GHz、1GB RAM、および安価なハードドライブ上にありました。

したがって、7zは、Zipを超えてテストした2つのケースで圧縮率を大幅に改善し、rarでも改善しましたが、7zは確かに低速でした。それほど重要ではありませんが、注意するのに十分です。

-アダム

2
Adam Davis

インストールしたばかりです dar (ただし、まだ試してみる機会はありません)。これは、gzipまたはbzip2圧縮を使用したtarに似ていますが、アーカイブを複数の部分に分割し、パリティを計算して、1つ以上の部分が破損した場合に、パリティファイルから再構築できるようにする機能が追加されています。

0
pgs