2017年11月2日木曜日

lzip vs xz

普段の圧縮、解凍にはどんなソフトを使っていますでしょうか。
私はちょっとマイナーなlzipというものを使っています。
LZMA形式のソフトで割と大きいファイルを圧縮するときに効率がいいです。

同じようなソフトでxzと言うものがあります。ちょっと気になったので私の非力なマシンで比較してみました。なお比較もお手軽にたった一回だけの試行です。手元にあったgccのソースファイルでやってみました。

-rw-rw-r--  1 jk jk 67881881  8月 14 17:44 gcc-7.2.0.tar.lz
$ time lzip gcc-7.2.0.tar
real    6m18.007s
user    6m7.908s
sys    0m1.016s

$ time lzip -d gcc-7.2.0.tar.lz
real    0m17.354s
user    0m10.388s
sys    0m1.144s

-rw-rw-r--  1 jk jk 66360108  8月 14 17:44 gcc-7.2.0.tar.xz
$ time xz gcc-7.2.0.tar
real    7m42.878s
user    7m40.676s
sys    0m1.204s

$ time xz -d gcc-7.2.0.tar.xz
real    0m11.897s
user    0m8.012s
sys    0m0.872s

ファイルサイズは約2.2%xzの方が小さくなりました。これはほぼ互角と言ってもいいかもしれません。

圧縮は22% lzipの方が速く出来ました。
解凍は34%xzの方が速く出来ました。

圧縮と解凍で真逆の結果となりましたが、一般的には解凍するほうが多いのかもしれません。
xzの方がメジャーな気がしますので、ややlzipが不利な結果となりました。ただしxzは2009年で開発が止まっている様です。lzipは2017年現在も開発中です。
昔に比べるとそこまで圧縮、解凍のニーズは減ったのかもしれませんが、こういう比較は面白いです。

2 件のコメント:

  1. xzについてふとある場所で5.2からマルチスレッド対応になったという記事をみて、よく調べてみると、

    https://tukaani.org/xz/

    で最新は2016年12月31日にリリースされた5.2.3が最新ですね。
    こういう情報が独りぼっちにはなかなかわらなかったりします。
    ということで開発は止まっていなかったということです。
    ちなみに手元のxzはバージョン5.1で少し古めのバージョンですね。

    この勘違いをした原因はwikipediaのバージョン表記が日本語版、英語版の両方で2009年が最新版との記述があるのを信じてしまった訳で、一時情報を見ていなかった私のミスです。

    返信削除
  2. ちなみにxzがマルチスレッド対応になったというのを発見した場所はここです。

    xzをマルチスレッドにしたら爆速になった
    https://qiita.com/bringer1092/items/10725993bca777029f25

    返信削除