SquashFS - Deflate vs LZMA
SquashFSの圧縮アルゴリズムにLZMAを使うパッチがありました。
これはSquashFS 2.0向けなので、これをCVSバージョン(Squashfs 3.0prerelease (2006/1/24) )にがんばって移植しました。
さらに、LZMA SDKのバージョン4.20用でしたが、圧縮(mksquashfs-lzma)は4.32、展開(squashfs.ko)は4.20にしました。
で、ベンチマークテストをしてみました。
ベンチマークに使ったのは、VIVER 0.2 Deskのルートイメージ。
LZMAを有効にしていない(zlib)のCVSバージョンのSquashFSと、LZMAを有効にしたSquashFSで比較しました。
展開速度は、
time cat root.1 >/dev/null
で測りました。いわゆるシーケンシャルリードでしょうか。
圧縮率
zlib:531MB
LZMA:478MB
これは、まぁ予想通り。と言うか、調べた情報通り。
圧縮にかかる時間
zlib:
289.33user 7.15system 5:03.08elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (1major+803270minor)pagefaults 0swaps
LZMA:
1174.59user 123.35system 21:41.79elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (8major+31533635minor)pagefaults 0swaps
うーむ。まぁ、調べた情報通り。でも4倍はちょっと長いかな。
展開にかかる時間
zlib:
0.05user 15.66system 0:17.88elapsed 87%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+219minor)pagefaults 0swaps
LZMA:
0.05user 59.25system 1:01.17elapsed 96%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+219minor)pagefaults 0swaps
コレはいけない。聞いた話ではLZMAは展開速度が速いというはず。逆に遅い。ものすごく遅い。
世の中簡単じゃないです。