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


8

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

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

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

回答を裏付ける実証テストへのリンクを提供してください。

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

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

ありがとう

回答:


14

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マルチコアサポートを利用できます。この記事を参照してください。


素晴らしい情報、ありがとう。Linuxで遊んでいるときにTARを見たことがありますが、TARをよく見たことはありません。
アッシュ

私はrarについて意見を異にする必要があります。(少なくともgzipと比較して)圧縮は良好であり、私の使用例では速度は問題ないようです。およそRARのような一つのことを私はそれがストリーミングコンテンツや個々のファイルを扱うことができている、とあなたは、自動含ま...ファイル名にタイムスタンプをすることができます
Dscoduc

10

推奨読書:

マルチコア時代のファイル圧縮(Jeff Atwood、別名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コアを使用して、その作業を並列化します。


リンクをありがとう。私たちは確かにジェフの見解が実際の経験に基づいていることを知っています!
Ash

4

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


いい視点ね。この検索インデックスは、特定の圧縮ファイルから直接データを抽出します。そのため、構成可能な圧縮/解凍パフォーマンスを提供するフォーマットがあるかどうかに興味があります。ですから、私は圧縮の側面、そして将来の側面のアーカイブについて詳しく見ていきます。
Ash

3

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

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

    比率bzip2 lzmash
    最速35.8%31.7%       
    最も遅い34.0%25.4%

    時間bzip2 lzmash  
    最速1分26秒0分58秒  
    最も遅い2分37秒12分20秒

    * OpenOffice.org 1.1.4 for Linuxのフルインストールの圧縮(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.

私も先週、誰かが私のサーバー障害の質問でそれを勧めた時まで。印象的に見えますが、プレーンテキストを使用する場合は、プレーンテキストでパフォーマンスを調査する価値があります。
ガイC

LZMAは7-zipで使用されるアルゴリズムの名前です。
vartec 2011年

2

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

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


ありがとう、しかし私はそれを読んで、それは少し簡単だと思った(質問の私のポイントを参照)。より多様なシナリオでより詳細なテストを知っていますか?
Ash

より多くの情報を提供したいと思っているリンクをいくつか追加しました。

2

zip、7z、rarと2つのケースの比較

それは正確に何を圧縮しているかに依存しますが、一般的に7zは複数のプロセッサをより効率的に使用し、7z圧縮形式自体はzipよりも高い圧縮率を実現します。無料ではありません...)

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

単一の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)の9千を超えるファイルを含むフォルダーを圧縮すると、次のものが得られます(これは、開発中のソフトウェア用にソースコードとそれを囲むすべてのツールの組み合わせです)。

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は確かに低速でした。それほどではありませんが、注意するのに十分です。

-アダム


素晴らしいテスト。そのMDB圧縮は巨大です。テストした100kのバイナリインデックスワードファイルでは、4対1しか得られません。システムが使用するのと同様のファイル/データを使用してテストすることがいかに重要であるかを示していると思います。
Ash

ええ、MDBファイルはすべて綿毛で実質はありません。バイナリファイルは少なくなります(8ビットすべてを使用するため、テキストファイルは6ビットを少ししか使用しないため)。多くの重複が発生していない可能性が高いです。ただし、常にテストすることが重要です。圧縮設定を試してみると幸運になるかもしれません-使用法に合わせて最適化し、標準設定よりも優れている場合があります。
アダムデイビス

0

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

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