「Lrzip」の版間の差分
(ページの作成:「{{Lowercase title}} Category:データ圧縮とアーカイブ en:Lrzip [https://github.com/ckolivas/lrzip Long Range ZIP] (別名 Lzma RZIP) は巨大なファ...」) |
(→インストール: 同期) |
||
(4人の利用者による、間の8版が非表示) | |||
2行目: | 2行目: | ||
[[Category:データ圧縮とアーカイブ]] |
[[Category:データ圧縮とアーカイブ]] |
||
[[en:Lrzip]] |
[[en:Lrzip]] |
||
− | [https://github.com/ckolivas/lrzip Long Range ZIP] (別名 Lzma RZIP) は巨大なファイルに最適化された圧縮プログラムです。冗長性を排除する [[Wikipedia:rzip|rzip]] と通常の圧縮 (LZMA, LZO, gzip, bzip2, ZPAQ) を組み合わせることにより、ファイルが巨大になればなるほど、高い圧縮パフォーマンスを得ることができます。特に 100MB 以上のファイルで高い効果があります。サイズ |
+ | [https://github.com/ckolivas/lrzip Long Range ZIP] (別名 Lzma RZIP) は巨大なファイルに最適化された圧縮プログラムです。冗長性を排除する [[Wikipedia:rzip|rzip]] と通常の圧縮 (LZMA, LZO, gzip, bzip2, ZPAQ) を組み合わせることにより、ファイルが巨大になればなるほど、高い圧縮パフォーマンスを得ることができます。特に 100MB 以上のファイルで高い効果があります。サイズ (bzip2 よりもはるかに小さい) と速度 (bzip2 よりもはるかに高速) のどちらを優先するかを選択することができます。 |
== インストール == |
== インストール == |
||
− | + | {{Pkg|lrzip}} パッケージを[[インストール]]してください。 |
|
== 使用方法 == |
== 使用方法 == |
||
12行目: | 12行目: | ||
=== 圧縮 === |
=== 圧縮 === |
||
− | ディレクトリを (再帰的に) 圧縮するには ''lrztar'' が必要です。最初にディレクトリが tar でまとめられてから圧縮されます。''tar'' で ''gzip'' や ''xz'' を使って圧縮するのと同じです ({{ic|tar zcf ...}} または {{ic|tar Jcz ...}})。 |
+ | ディレクトリを (再帰的に) 圧縮するには ''lrztar'' が必要です。最初にディレクトリが tar でまとめられてから圧縮されます。''tar'' で ''gzip'' や ''xz'' を使って圧縮するのと同じです ({{ic|tar zcf ...}} または {{ic|tar Jcz ...}})。なお、rzip と同様に、事前の圧縮処理の後に圧縮アルゴリズムが適用され、例えば一般的な LZMA 圧縮アーカイブとは異なります。 |
{{ic|foo}} という名前のディレクトリから [[Wikipedia:LZMA|LZMA]] で圧縮されたアーカイブ {{ic|foo.tar.lrz}} を作成するには: |
{{ic|foo}} という名前のディレクトリから [[Wikipedia:LZMA|LZMA]] で圧縮されたアーカイブ {{ic|foo.tar.lrz}} を作成するには: |
||
$ lrztar foo |
$ lrztar foo |
||
− | {{ic|bar}} という名前の |
+ | {{ic|bar}} という名前のファイルから LZMA 圧縮アーカイブ {{ic|bar.lrz}} を作成するには: |
$ lrzip bar |
$ lrzip bar |
||
25行目: | 25行目: | ||
圧縮・展開の時間を高速にしたい場合、{{ic|-l}} スイッチで [[Wikipedia:LZO|LZO]] を使うことができます: |
圧縮・展開の時間を高速にしたい場合、{{ic|-l}} スイッチで [[Wikipedia:LZO|LZO]] を使うことができます: |
||
$ lrzip -l bar |
$ lrzip -l bar |
||
+ | |||
+ | デフォルトでは、lrzip はファイルブロックの履歴を記憶するために、使用可能な RAM サイズまで使用することができます。圧縮するファイルがそれよりも大きい場合は、{{ic|-U}} スイッチを追加してディスクマッピングを有効にしてください。かなり遅くなりますが、どんなサイズのファイルでも扱えます: |
||
+ | $ lrzip -U bar |
||
=== 展開 === |
=== 展開 === |
||
36行目: | 39行目: | ||
== 詳細 == |
== 詳細 == |
||
+ | Lrzip は [[Wikipedia:rzip|rzip]] の拡張版で、ファーストパスの長距離冗長性削減を行います。lrzip の修正により、メモリサイズに応じてスケールするようになりました。データはその後、次のいずれかになります。 |
||
− | Lrzip uses an extended version of [[Wikipedia:rzip|rzip]], which does a first pass long distance redundancy reduction. The lrzip modifications make it scale according to memory size. The data is then either: |
||
− | |||
− | # Compressed by LZMA (default), which gives excellent compression at approximately twice the speed of bzip2 compression |
||
− | # Compressed by a number of other compressors chosen for different reasons, in order of likelihood of usefulness: |
||
− | ## ZPAQ: Extreme compression up to 20% smaller than LZMA, but ultra slow at compression AND decompression. |
||
− | ## LZO: Extremely fast compression and decompression, which on most machines compresses faster than disk writing making it as fast (or even faster) than simply copying a large file. |
||
− | ## GZIP: Almost as fast as LZO, but with better compression. |
||
− | ## BZIP2: A defacto linux standard of sorts, but is the middle ground between LZMA and gzip and neither here nor there. |
||
− | # Leaving it uncompressed and rzip prepared. This form improves substantially any compression performed on the resulting file in both size and speed (due to the nature of rzip preparation merging similar compressible blocks of data and creating a smaller file). By "improving" it will either speed up the very slow compressors with minor detriment to compression, or greatly increase the compression of simple compression algorithms. |
||
− | |||
− | The major disadvantages are: |
||
− | # The main ''lrzip'' application only works on single files, so it requires the ''lrztar'' wrapper to fake a complete archiver. |
||
− | # It requires a lot of memory to get the best performance out of (as much memory as the size of the data to compress; but see the sliding mmap below), and is not really usable (for compression) with less than 256MB. Decompression requires less ram and works on smaller ram machines. Sometimes swap may need to be enabled on these lower ram machines for the operating system to be happy. |
||
− | # STDIN/STDOUT works fine on both compression and decompression, but larger files compressed in this manner will end up being less efficiently compressed. |
||
− | |||
− | The unique feature of lrzip is that it tries to make the most of the available ram in your system at all times for maximum benefit. It does this by default, choosing the largest sized window possible without running out of memory. It also has a unique "sliding mmap" feature which makes it possible to even use a compression window larger than your ramsize, if the file is that large. It does this (with the {{ic|-U}} option) by implementing one large mmap buffer as per normal, and a smaller moving buffer to track which part of the file is currently being examined, emulating a much larger single mmapped buffer. Unfortunately, this mode can be many times slower. |
||
− | |||
− | == ベンチマーク == |
||
+ | # LZMA (デフォルト) で圧縮されます。これは bzip2 の約2倍の速度で優れた圧縮を行います。 |
||
− | ソースに含まれている [http://ck.kolivas.org/apps/lrzip/README.benchmarks README.benchmarks] を見てください。 |
||
+ | # この他にも、様々な理由で選ばれた圧縮機によって圧縮されます。 |
||
+ | ## ZPAQ: LZMA よりも 20% も小さい究極の圧縮率を誇るが、圧縮と伸張の両方がとても遅いです。 |
||
+ | ## LZO: 非常に高速な圧縮・伸長。ほとんどのマシンではディスクへの書き込みよりも速く圧縮されるため、大きなファイルを単にコピーするのと同じ速度 (あるいはそれ以上の速度) で圧縮することができます。 |
||
+ | ## GZIP: LZO とほぼ同じ速度ですが、より優れた圧縮を行います。 |
||
+ | ## BZIP2: ある種のデファクト Linux 標準ですが、LZMA と gzip の中間的な存在で、どちらともいえません。 |
||
+ | # 非圧縮のままにしておいて rzip を用意します。この形式は、結果となるファイルに対して行われる圧縮を、サイズと速度の両方において、大幅に改善します (rzip 準備の性質上、同様の圧縮可能なデータブロックをマージして、より小さなファイルを作成するため。) 改善することで、圧縮をわずかに損なうことなく非常に遅い圧縮を高速化するか、単純な圧縮アルゴリズムの圧縮を大幅に増加させるかのどちらかになります。 |
||
+ | 主なデメリットは |
||
− | == FAQ == |
||
+ | # メインの ''lrzip'' アプリケーションは単一のファイルに対してのみ動作するので、完全なアーカイバとして使うには ''lrztar'' ラッパーが必要です。 |
||
+ | # 最高のパフォーマンスを得るためには多くのメモリを必要とし (圧縮するデータのサイズと同程度のメモリ。ただし、以下のスライディングmmapを参照)、256MB以下では (圧縮に) 本当に使えません。展開にはより少ないメモリしか必要とせず、より小さいメモリしか持たないマシンでも動作します。オペレーティングシステムが機能するように、これらの低ラムマシンではスワップを有効にする必要があります。 |
||
+ | # STDIN/STDOUT は圧縮と伸張の両方でうまく動作するが、この方法で圧縮された大きなファイルは、結局は効率よく圧縮されない。 |
||
+ | lrzip のユニークな特徴は、システムで利用可能な RAM を常に最大限に活用しようとすることです。これはデフォルトで行われ、メモリを使い果たすことなく可能な限り大きなサイズのウィンドウを選択します。また、ユニークな "スライディング mmap" 機能により、 ファイルが大きい場合は RAM サイズより大きな圧縮ウィンドウを使用することも可能です。これは ({{ic|-U}} オプションで) 通常通り1つの大きな mmap バッファを実装し、ファイルのどの部分が現在検査されているかを追跡するために小さな移動バッファを実装し、はるかに大きな単一の mmap バッファをエミュレートすることによって実現されます。残念ながら、このモードは何倍も遅くなることがあります。 |
||
− | ソースパッケージに含まれている [http://ck.kolivas.org/apps/lrzip/README README] を見てください。 |
||
+ | == 参照 == |
||
− | == リポジトリとイシュートラッカー == |
||
− | * https://github.com/ckolivas/lrzip |
+ | * [https://github.com/ckolivas/lrzip GitHub リポジトリ] |
+ | * [http://ck.kolivas.org/apps/lrzip/README.benchmarks 著者によるベンチマーク] |
2024年2月9日 (金) 04:09時点における最新版
Long Range ZIP (別名 Lzma RZIP) は巨大なファイルに最適化された圧縮プログラムです。冗長性を排除する rzip と通常の圧縮 (LZMA, LZO, gzip, bzip2, ZPAQ) を組み合わせることにより、ファイルが巨大になればなるほど、高い圧縮パフォーマンスを得ることができます。特に 100MB 以上のファイルで高い効果があります。サイズ (bzip2 よりもはるかに小さい) と速度 (bzip2 よりもはるかに高速) のどちらを優先するかを選択することができます。
インストール
使用方法
圧縮
ディレクトリを (再帰的に) 圧縮するには lrztar が必要です。最初にディレクトリが tar でまとめられてから圧縮されます。tar で gzip や xz を使って圧縮するのと同じです (tar zcf ...
または tar Jcz ...
)。なお、rzip と同様に、事前の圧縮処理の後に圧縮アルゴリズムが適用され、例えば一般的な LZMA 圧縮アーカイブとは異なります。
foo
という名前のディレクトリから LZMA で圧縮されたアーカイブ foo.tar.lrz
を作成するには:
$ lrztar foo
bar
という名前のファイルから LZMA 圧縮アーカイブ bar.lrz
を作成するには:
$ lrzip bar
圧縮率を高めたい場合、-z
スイッチを追加することで ZPAQ が有効になりますが LZMA よりも長い時間がかかります:
$ lrztar -z foo
圧縮・展開の時間を高速にしたい場合、-l
スイッチで LZO を使うことができます:
$ lrzip -l bar
デフォルトでは、lrzip はファイルブロックの履歴を記憶するために、使用可能な RAM サイズまで使用することができます。圧縮するファイルがそれよりも大きい場合は、-U
スイッチを追加してディスクマッピングを有効にしてください。かなり遅くなりますが、どんなサイズのファイルでも扱えます:
$ lrzip -U bar
展開
圧縮されたディレクトリを展開するには:
$ lrzuntar foo.tar.lrz
bar.lrz
を bar
に展開するには:
$ lrunzip bar.lrz
詳細
Lrzip は rzip の拡張版で、ファーストパスの長距離冗長性削減を行います。lrzip の修正により、メモリサイズに応じてスケールするようになりました。データはその後、次のいずれかになります。
- LZMA (デフォルト) で圧縮されます。これは bzip2 の約2倍の速度で優れた圧縮を行います。
- この他にも、様々な理由で選ばれた圧縮機によって圧縮されます。
- ZPAQ: LZMA よりも 20% も小さい究極の圧縮率を誇るが、圧縮と伸張の両方がとても遅いです。
- LZO: 非常に高速な圧縮・伸長。ほとんどのマシンではディスクへの書き込みよりも速く圧縮されるため、大きなファイルを単にコピーするのと同じ速度 (あるいはそれ以上の速度) で圧縮することができます。
- GZIP: LZO とほぼ同じ速度ですが、より優れた圧縮を行います。
- BZIP2: ある種のデファクト Linux 標準ですが、LZMA と gzip の中間的な存在で、どちらともいえません。
- 非圧縮のままにしておいて rzip を用意します。この形式は、結果となるファイルに対して行われる圧縮を、サイズと速度の両方において、大幅に改善します (rzip 準備の性質上、同様の圧縮可能なデータブロックをマージして、より小さなファイルを作成するため。) 改善することで、圧縮をわずかに損なうことなく非常に遅い圧縮を高速化するか、単純な圧縮アルゴリズムの圧縮を大幅に増加させるかのどちらかになります。
主なデメリットは
- メインの lrzip アプリケーションは単一のファイルに対してのみ動作するので、完全なアーカイバとして使うには lrztar ラッパーが必要です。
- 最高のパフォーマンスを得るためには多くのメモリを必要とし (圧縮するデータのサイズと同程度のメモリ。ただし、以下のスライディングmmapを参照)、256MB以下では (圧縮に) 本当に使えません。展開にはより少ないメモリしか必要とせず、より小さいメモリしか持たないマシンでも動作します。オペレーティングシステムが機能するように、これらの低ラムマシンではスワップを有効にする必要があります。
- STDIN/STDOUT は圧縮と伸張の両方でうまく動作するが、この方法で圧縮された大きなファイルは、結局は効率よく圧縮されない。
lrzip のユニークな特徴は、システムで利用可能な RAM を常に最大限に活用しようとすることです。これはデフォルトで行われ、メモリを使い果たすことなく可能な限り大きなサイズのウィンドウを選択します。また、ユニークな "スライディング mmap" 機能により、 ファイルが大きい場合は RAM サイズより大きな圧縮ウィンドウを使用することも可能です。これは (-U
オプションで) 通常通り1つの大きな mmap バッファを実装し、ファイルのどの部分が現在検査されているかを追跡するために小さな移動バッファを実装し、はるかに大きな単一の mmap バッファをエミュレートすることによって実現されます。残念ながら、このモードは何倍も遅くなることがあります。