LIVE SIMPLY

データ活用組織のマネジメントを行いつつコーチング、本など学んだことを書くblog

【勉強メモ】gzip・bzip2・lzmaコマンドの圧縮率

gzip・bzip2・lzmaの比較より引用。

gcc-4.3.0.tar, 403,271,680バイト (GCCftpサイトから得たgcc-4.3.0.tar.bz2を伸長して作成)
を入力として与え、各圧縮形式の圧縮率と伸長に要する時間を計測している。

■圧縮:

対象 サイズ 所要時間[秒]
gzip -1 (--fast) 23.93% 20.36
gzip -6 (default) 19.35% 40.07
gzip -9 (--best) 19.14% 82.92
bzip2 -1 (--fast) 17.77% 153.22
bzip2 -9 (--best, default) 14.71% 194.64
lzma -1 (--fast) 17.49% 67.94
lzma -7 (default) 11.90% 733.03
lzma -9 (--best) 11.40% 993.16


■伸長:

対象 入力 所要時間[秒]
gzip gzip -1 7.55
gzip gzip -6 6.41
gzip gzip -9 6.33
bzip2 bzip2 -1 33.45
bzip2 bzip2 -9 37.37
lzma lzma -1 20.30
lzma lzma -7 14.84
lzma lzma -9 14.39

■結果
・圧縮率は
gzip < bzip2 < lzma -1 (--fast) < lzma -7 (default)

・伸長時間は
gzip < bzip2 < lzma -7 (default) < lzma -1 (--fast)

となった。

■考察
・高圧縮用途(長く保存しておくもの)ならlzma-default圧縮。圧縮時間はかかるけど容量が小さくなってうれしい
ソースコードを固めて公開するときなど、圧縮回数よりも伸長回数の方がずっと多いものならlzma-default圧縮。上と同じく容量が小さくなってうれしい

・バックアップなどそこそこの圧縮速度と圧縮率を求めるものならgzip-defaultまたはbzip2-default圧縮。バランスのいいところを選択

・伝送路圧縮ならgzip-default圧縮。ただし圧縮側の演算資源が貧弱ならgzip-fastの方が有利な場合もあり。圧縮率よりも速度が支配的

ということらしい。
lzmaはこれまで使っていなかったが、使ってみるかな・・