1つの大きなアーカイブに圧縮すると、フォルダーを個別に圧縮するよりも圧縮率が向上しますか?


1

約8GBほどのフォルダーがいくつかあります。これらのフォルダを合わせて合計で約60GBのデータがあります。これらのフォルダーは、2つの方法のいずれかで圧縮できます。個別に、それぞれに1つの圧縮アーカイブを作成するか、単一の大きな圧縮アーカイブにまとめることができます。

一般的に言えば、圧縮されるすべてのデータが同じタイプであり、使用される圧縮アルゴリズムが同じであると仮定すると(そして、大きなファイルを解凍するのにかかる時間も気にしません)、どちらの方法でも結果は圧縮率が他の圧縮率よりも良いのか、それとも2つのシナリオの圧縮ファイルの合計サイズが等しくなる傾向があるのか​​?

回答:


3

絶対に確実に言うことは不可能ですが、1つの大きなアーカイブでは、より多くのデータブロックが繰り返し検出されるため、理論的にはアーカイブサイズを小さくする必要があります。これは、あなたが言うようにデータが均質化されていることを前提としています。

ただし、特定のフォルダに、より類似したデータブロックを持つファイルが含まれている可能性があるため、独自の個別のアーカイブとしてより圧縮する可能性があります。

どの方法が最適かを知る唯一の真の方法は、両方の方法をテストすることです。


3

1つの大きなアーカイブに圧縮すると、フォルダーを個別に圧縮するよりも圧縮率が向上しますか?必ずしも。

アーカイブが固体圧縮を使用している場合のみ。非固体アーカイブ(Zipアーカイブなど)は、ファイルを個別に圧縮します。これにより、アーカイブから単一のファイルを簡単に解凍できます。また、すべてを再圧縮することなく、アーカイブにファイルを追加できます。

固体アーカイブでは、これはすべて非常に困難です。ストリームの最後にあるファイルを解凍するには、すべてを解凍する必要があります(ディスクに書き込む必要はありません)。ファイルを追加するとき、アルゴリズムもすべてを通過する必要があります。

ただし、中間的な理由があります。「ソリッドブロック」を使用します。これで、アーカイバは常にファイル全体を処理する必要はなく、ファイルの一部のみを処理する必要があります。

7-Zip GUIでは、このオプションは次のとおりです。

7-Zip追加ダイアログ

圧縮されるデータを考慮することなく、それは本当に簡単です:

  • 非ソリッド:高速のインタラクティブアクセス、最悪の圧縮
  • 固体ブロック:やや効率的な対話型アクセス、より良い圧縮
  • 安定:インタラクティブアクセスなし、最高の圧縮

予測されるアクセスパターンに応じて、適切なバリアントを選択する必要があります。


1

単一のアーカイブはほとんどの場合小さくなりますが、あなたが考える理由ではありません。

簡単に言えば、アーカイブを1つだけにすることで、複数のアーカイブファイルヘッダーでスペースを無駄にすることはありません。アーカイブファイルが有効なアーカイブとして使用するために必要なスペースは最小限であり、作成する各アーカイブでそのようなスペースを使用することになります。これに対して広く使用されている唯一の例外はcpio、アーカイブ自体のヘッダーがなく、代わりにファイルごとのヘッダーがある形式です。

もっと現実的に、あなたがなり、通常は複数のではなく、ただ1つのアーカイブを使用して、圧縮率の少なくとも同程度の良好な取得、およびいくつかのアーカイバでそれを大幅に改善することができます(たとえば、zpaq重複排除を行い以内アーカイブので、大幅に節約することができます大量のデータが重複している場合はスペースを確保してください)。

ただし、これを決定する前に質問する必要がある別の質問があります。複数の小さなアーカイブではなく、単一の大きなアーカイブを処理するオーバーヘッドがスペースの節約に値しますか?データを保存する場所に応じて、特に一度に1つのフォルダーのみが必要になる可能性がある場合は、小さいアーカイブを使用する方が経済的です。

全体的に見て、Keltariは正しいので、確実に知る唯一の方法はテストすることです。

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