GNU/Linux >> Linux の 問題 >  >> Linux

Lzma Vs Bzip2 – UNIX / Linux での bzip2 よりも優れた圧縮

Lzma は、Lempel-Ziv-Markov chain Algorithm の略です。 ルズマ ファイルを圧縮および解凍するための bzip2 および gzip のような圧縮ツールです。 bzip 圧縮よりもはるかに高速で効率的です。ご存知のように、gzip の圧縮率は bzip2 (および lzma) よりも劣っています。

この記事では、圧縮率が大幅に向上し、操作が高速化される効果的な圧縮ユーティリティである lzma の使用方法を理解しましょう。

lzma -c を使用して入力テキスト ファイルを圧縮します

$ lzma  -c --stdout  sample.txt  >sample.lzma

-d オプションを使用して lzma ファイルを解凍します

$ lzma -d –stdout sample.lzma >sample.txt

bzip2 と lzma 圧縮ツールの比較

lzma の有効性を理解するために、1MB の sample.txt を lzma と bzip2 の両方で圧縮/解凍し、結果を比較してみましょう。これらのテストは、1 GB の RAM を搭載し、プロセッサが Pentium 4 であるマシンで行われました。

sample.txt 入力ファイルのサイズ:

$ ls -l sample.txt
-rw-r--r-- 1 bala bala   1048576 2010-05-14 19:43 sample.txt

注: すべての圧縮および解凍コマンドの前に time コマンドを使用して、コマンドの CPU 使用率を取得しました。

bzip2 を使用して sample.txt を圧縮します

入力ファイルを bzip2 コマンドで圧縮すると、圧縮時にオプションは必要ありません。

$ time bzip2  sample.txt

real    0m27.874s
user    0m13.981s
sys     0m0.148s

$ ls -l sample.txt.bz2
-rw-r--r-- 1 bala bala      1750 2010-05-14 19:43 sample.txt.bz2

bzip2 の後 圧縮、出力ファイル サイズは 1750 バイト .

bunzip2 を使用して sample.txt を解凍します

bunzip2 ユーティリティを使用して圧縮ファイルを解凍します。オプションを渡す必要もありません。

$ bunzip2  sample.txt.bz2

real    0m0.232s
user    0m0.128s
sys     0m0.020s

lzma を使用して sample.txt を圧縮します

それでは、次のオプションを指定して lzma コマンドを使用して sample.txt を圧縮しましょう:

  • -c で圧縮
  • –stdout で圧縮された出力を出力します
$ time lzma  -c --stdout  sample.txt >sample.lzma

real    0m2.035s
user    0m1.544s
sys     0m0.132s

$ ls -l sample.lzma
-rw-r--r-- 1 bala bala       543 2010-05-14 19:48 sample.lzma

圧縮後、lzma サイズが 543 バイト の出力ファイルを生成します 、これは bzip2 コマンドよりも比較的少ないです。また、上記のように、lzma が使用する CPU 時間は bzip2 よりもはるかに少ないです。

lzma を使用して sample.txt を解凍します

次のオプションを指定して lzma コマンドを使用して、*.lzma ファイルを解凍します。

  • -d で圧縮
  • –stdout で圧縮解除された出力を出力します
$ time lzma -d --stdout sample.lzma >sample.txt

real    0m0.043s
user    0m0.016s
sys     0m0.004s

上記のように、lzma による解凍は bzip2 よりも何倍も高速です

さまざまなレベルの Lzma 圧縮

  • Lzma は -1 から -9 までの圧縮範囲を提供します。
  • -9 は最高の圧縮率で、これを行うには一定の時間とシステム リソースが必要です。これらの比率は減圧には適用されません。
  • -1 は最低レベルの圧縮率であり、はるかに高速に実行されます。

低レベルの圧縮率を使用して迅速な lzma 圧縮を行うには、次の手順を実行します。

$ lzma -1 -c --stdout  sample.txt >sample.lzma

$ ls -l sample.lzma

-rw-r--r-- 1 bala bala       548 2010-05-14 20:47 sample.lzma

注: -fast は -1 のエイリアスです。

-9 は最高レベルの圧縮率であり、低レベル比よりも圧縮に時間がかかります。高レベルの圧縮率を使用して集中的な圧縮を行うには、次の手順を実行します:

$ lzma -9 -c --stdout  sample.txt >sample.lzma

$ ls -l sample.lzma
-rw-r--r-- 1 bala bala       543 2010-05-14 20:55 sample.lzma

注: -best は -9 のエイリアスです。


Linux
  1. UnixからLinuxへの移行

  2. Linux – Unix / linux Osesの標準および/または共通ディレクトリ?

  3. Linux –異なるLinux / UNIXカーネルは交換可能ですか?

  1. PrintfがEchoよりも優れているのはなぜですか?

  2. Linux – LinuxはUnixですか?

  3. LinuxVPSがWindowsVPSよりも優れているのはなぜですか

  1. Linux / UNIX OS サービス :autofs

  2. (Ubuntu) Linux のファイル コピー アルゴリズムは Windows 7 より優れていますか?

  3. Linux でテキスト ファイルを圧縮するには、どのアーカイブ方法が適していますか?