強烈なbzip2と、さりげないgzip、どっちも大切さ

勉強用にDebian GNU/Linuxの軽い環境をVMWareで作った。
そもそも800MB程度と軽いのをtar.bz2に圧縮すると280MBとずいぶん。
この程度ならいろんなところに導入できるな。
ちなみに、ebisu号になってたり。さすがにこれはやばい?
一部変更すればいいようになってる。
ちなみに追加パッケージとしてgpmとVMWare Toolsだけ。
gpmはCUIにおいてマウスを使うツール。マウスでコピペができる。
後者は…X使ってないとうまみが少ないな…残念。
ところでBzip2は便利ですね。圧縮力ではかなり恐ろしいですわ。
現在のLinuxすべてとは言わないけどほとんど、Windowsでも高圧縮という実力でちょっとは使われてる。
欠点は単一ファイルの圧縮しかできないこと。これを補うtarballという使い方だな。
たくさんのファイルをtarで固めて、それを圧縮すると。
全部を圧縮するから圧縮力は強いけど、欠点はファイルごとに解凍したりするにも頭から解凍する必要があるのでめんどい。
そういうところではLHAでも素直に使ってください。
そうそう、大きな単位を圧縮するほうが圧縮率はいいんだよ。
いろいろあるらしくてね。だから軽いファイル大量にLHAするとそんなに軽くないかも。
まぁそもそもの圧縮性能の高さとあいまってなかなか人気。
ただ厄介なのが計算量。正直gzipより圧倒的に重い。
Libserverですると時間がかかってしょうがない。
というわけでSFTPでこちらに送ってAthlonパワーで圧縮。
でも実はSFTPで送信するときにも2〜8ぐらいの度合いでgzipの圧縮をかけてるはず。
9は重いけど8なら軽いらしい。軽い範囲である程度圧縮してるんだと。
さりげない圧縮ではgzipのレベル8がよく使われてますね。
でもやっぱり保存するには軽いほうがいいのでbzip2でレベル9で圧縮かけるんだけど。
まぁこのあたりが一長一短あるよな。
ちなみに今日やってたのはhtdocsとMaildirのバックアップ。
この工作の結果は
Maildirでは圧縮前のtarは3.7MB、圧縮後は0.68MB…こりゃひどいわ。
まぁこれはテキストベースだからね。
さすがにhtdocsは画像もあるのでちょっと落ちて18.2MBが9.90MBになる程度。
まぁそれでも半分近いけど。
しかし…かなりbzip2にはお世話になってますなぁ。
あるところでは圧縮したものをBase64で伸張したものを某所のメモに貼ってある。
まぁほとんどの人は価値が見出せないけど、Linuxのコマンド一発でできるからね。
そうじゃなくてもWebサービスでBase64から復号したものをLhazで解凍すればOK。
すごい人と出先の自分のために貼ってある。
これがオリジナルの文章より軽いんだ。僕は39bytesが伸張されて52文字、これを単位に改行。
となると39bytesが52+2(CRとLF)の54bytesに伸びるわけか。
1.38倍だな。すなわち72%は圧縮できてるってことだ。
実際はもっと軽いから半分近いってことだな。
図らずして容量削減にもなってるんだな。
ソースコードとかテキストファイルを圧縮するとかなり効率がいいですからね。
そういうものを表現する一つの方法としてどうぞ。
しかし、ユーティリティーが少ないな。
Linuxでbzip2コマンドからパイプでperlで作ったBase64デコーダーをはさんでリダイレクトでもしてください。
実際ちょっと違うけどこれと似たことをCygwinでやってる。
がねぇ…Windowsでは厳しいな。
まぁあんまり使う人がいないか…でもはやらせたいな。