【gzip】圧縮対決【bzip2】
■ このスレッドは過去ログ倉庫に格納されています
zlibより圧縮率悪いけどかなり早いQuickLZ http://www.quicklz.com/ quicklzより良さげなのにクローズドソースのlzturbo http://consultant-berater.de/lzturbo/ 圧縮率かなり高いけど相当遅いPAQ http://cs.fit.edu/ ~mmahoney/compression/ 最近は細かいこと考えずにlzmaばかりだな・・・ PCの性能は十分あるんだし 自分しか使わないファイルはlzma(.tar.lzmaとか)、 誰かに渡すファイルはgzとかbz2にしてる。 Summary of the multiple file compression benchmark tests ttp://www.maximumcompression.com/data/summary_mf3.php OpenVPNで使ってるLZOしか知らなかったけど、THOR, QuickLZ, LZTurbo, LZO って同じような中身なのかな? GPL: QuickLZ、LZO クローズ: LZTurboなのか? LGPLか修正BSDが欲しいと思ってたら、http://www.quicklz.com/ ここで比較してる lzf (LibLZF)ってのが修正BSDだった。 改善しつつ広まって欲しいな。 NTFSの圧縮ファイルシステムみたいなLZOlayer_fsってのを使ってる人がいるので、 DeveloperWorks Japan > Linux > FUSEによる独自ファイルシステムの開発 ttp://www.ibm.com/developerworks/jp/linux/library/l-fuse/index.html ここから辿ってファイルシステム一覧を見てたら、圧縮ファイルシステム一覧があった。 読み書きできて、安定してるやつは他にあるのかな。 ttp://fuse.sourceforge.net/wiki/index.php/FileSystems ・CompressedFileSystems - accessing files in a compressed image (gz, zlib, LiveCDs, etc.) - compFUSEd - FuseCompress - LZOlayer_fs - Transparent compression filesystem ・ArchiveFileSystems - accessing files inside archives (tar, cpio, zip, etc.) - unpackfs - avfs - mount archive and compressed files, and access remote files >>8 中身違うと思う。LGPLなLZOはffmpegのlibavutilにあった気ガス。あと7zにもあったような。 lzmaよりbzip2のほうが早いしよく潰れるんだが・・・ ^−^;;;; (12:33:25)hoge~/$ time tar cf - emacs-21.4 | gzip -1 > emacs-21.4.tar.gz real 0m35.635s user 0m32.900s sys 0m4.500s (12:34:44)hoge~/$ time tar cf - emacs-21.4 | bzip2 -z -1 > emacs-21.4.tar.bz2 real 2m19.127s user 2m17.470s sys 0m3.970s (12:37:28)hoge~/$ time tar cf - emacs-21.4 | lzma -z -1 > emacs-21.4.tar.lzma real 2m22.816s user 2m20.920s sys 0m5.320s (12:40:18)hoge~/$ ls -l emacs-21.4.tar.* -rw-r--r-- 1 *** users 21538172 6月 30 12:37 emacs-21.4.tar.bz2 -rw-r--r-- 1 *** users 28265569 6月 30 12:34 emacs-21.4.tar.gz -rw-r--r-- 1 *** users 22247714 6月 30 12:40 emacs-21.4.tar.lzma -9使うだろ常考 $ time gzip -9 emacs-21.4a.tar real 0m23.369s user 0m18.659s sys 0m2.363s $ time bzip2 -9 emacs-21.4a.tar real 1m9.675s user 1m3.954s sys 0m1.605s $ time lzma -9 emacs-21.4a.tar real 7m20.250s user 6m41.498s sys 0m3.793s $ ls -lSr emacs-21.4a.tar* -rw-rw-r-- 1 xxxx xxxx 12644142 Jun 30 15:00 emacs-21.4a.tar.lzma -rw-rw-r-- 1 xxxx xxxx 16031034 Jun 30 14:59 emacs-21.4a.tar.bz2 -rw-rw-r-- 1 xxxx xxxx 20403499 Jun 30 14:58 emacs-21.4a.tar.gz $ lzma -9の方が小さいよ。 死ぬほど遅いけど。 >>13 -9 使いたいのはやまやまなんだが、手元のマシンがP2-400なんだw lzmaの売りが圧縮率と思うが、時間がかかりすぎるぞ・・・・。 どれだけ圧縮が遅くてもいい。 どれだけ圧縮にメモリを使ってもいい。 展開が激烈には遅くなく(たとえばgzipの数倍以内とか)で、 なおかつ、メモリ使用量がそれなり(たとえば、256MB以内とか)。 この条件でベストのものって何? 何がしたいかというと、 ディストリのインストールDVDを一枚のCDに圧縮したいわけです。 gzipなら4.7GBになるところを、無理やり700MB以内にできないか? 圧縮は、どんなに遅くてもいい。 たとえ、Quad Core で3ヶ月ぐらい掛かっても、 圧縮する価値はあると思う。 DVDなんてダウンロードできないよ!!!。 >>17 シャノンの定理は対象の情報源以外から情報を得られないから 成り立っているように見えるんだよ。 圧縮が遅いのは放っておけばいいので問題ないんだが、展開が遅い奴は嫌だな。 >>16 解凍は bzip2 より lzma のほうが速いよ。 圧縮時間も bzip2 並でよければ変わらんし。 ・ Average compression ratio of LZMA is about 30% better than that of gzip, and 15% better than that of bzip2. ・ Decompression speed is only little slower than that of gzip, being two to five times faster than bzip2. ・ In fast mode, compresses faster than bzip2 with a comparable compression ratio. >>16 釣りか? それなら圧縮してる時間をダウンロードにあてれば解決するだろ。 >>9 の書庫ファイルシステムについてfuse-zipとの性能比較があった。 PerformancePage - VFS performance comparison http://code.google.com/p/fuse-zip/wiki/PerformancePage 他の圧縮もlibzip使って比較してるのか分らないけど、 fuse-zipとavfs-fuseがunpackfsより軽いみたいだ。 それぞれ CompressFileSystems(圧縮ファイルシステム)は、1ファイルごとにgzなど圧縮ファイルと対応させて管理されて、 ArchveFileSystems(書庫ファイルシステム)zip書庫などをマウントポイントからディレクトリとして使える物みたい FuseCompress - compressed filesystem http://www.miio.net/fusecompress 性能測定したらこんな感じになった ■ファイルサイズ(MyISAMのデータファイル) file 1,127,594,052 (lzo) /tmp/lzo/file 294,154,987 (26.1%) (gz) /tmp/gz/file 183,510,660 (16.3%) (bz2) /tmp/bz2/file 未測定 ■同一HDD: cp file file2 real 1m5.670s, user 0m0.187s, sys 0m6.112s 動作時のcpu利用率 10% (cp 10%) ■同一HDD(lzo): cp file /mnt/lzo/file real 0m44.970s, user 0m0.310s, sys 0m4.768s 動作時のcpu利用率 50% (cp 10%, fusecompress 40%) ■同一HDD(gzip): cp file /mnt/gz/file real 2m8.807s, user 0m0.331s, sys 0m4.469s 動作時のcpu利用率 100% (cp 4%, fusecompress 95%) ■同一HDD(bz2): cp file /mnt/bz2/file 動作時のcpu利用率 100% (cp 2%, fusecompress 98%) ■ヌル出力: cat file > /dev/null real 0m21.486s, user 0m0.121s, sys 0m1.477s cat 6% ■ヌル出力(lzo): cat /mnt/lzo/file > /dev/null real 0m11.340s, user 0m0.211s, sys 0m1.406s 動作時のcpu利用率 60% (cat 10%, fusecompress 50%) ■ヌル出力(gzip): cat /mnt/gz/file > /dev/null real 0m19.671s, user 0m0.152s, sys 0m1.153s 動作時のcpu利用率 100% (cat 6%, fusecompress 94%) ■ヌル出力(bz2): cat /mnt/bz2/file > /dev/null 動作時のcpu利用率 100% (cat 1%, fusecompress 99%) ■lzop -o file.lzo file real 0m43.200s, user 0m8.009s, sys 0m2.727s lzop 24% ttp://gihyo.jp/magazine/wdpress/archive/2008/vol42 このDB+WEBの簡潔データ構造の記事みて、いろいろ読んでたら なんか世の中変わってた。 圧縮データ構造とその最新動向 ttp://www-or.amp.i.kyoto-u.ac.jp/ramp2006/program.html 透過的データ圧縮 ttp://keisan-genkai.lab2.kuis.kyoto-u.ac.jp/reports/2005/zentai_2/ ttp://tcslab.csce.kyushu-u.ac.jp/~sada/lectures/algoeng2006.html WAN/LANやDB、ファイルシステム、RAM、Cache、内部通信にもこういうものを使う研究もあるみたいだし、 結構わくわくしてきたぞ。 $ time rzip -9 emacs-21.4a.tar real 0m31.523s user 0m28.823s sys 0m1.306s $ ls -l emacs-21.4a.tar* -rw-rw-r-- 1 xxxx xxxx 14472688 Jul 7 13:49 emacs-21.4a.tar.rz $ >>13 と同じ環境。 合わせて評価すると速さと圧縮率のバランスがいいかもしれない。 lzmaはシングルスレッドだし、p7zipはパイプで使えないしで、 lzmaの4.999α版コンパイルしてみたけど、マルチスレッドにならないし。 7zファイル形式がパイプで使えない原因らしいから、 p7zipがlzmaファイル形式をサポートして、パイプで使えるようになったら良いな〜 >>26 これいいな〜と思ったら標準入出力に未対応か・・・ >>30 lbzip2みたいだぞ A multi-threaded bzip2/bunzip2 filter http://phptest11.atw.hu/ Parallel BZIP2 (PBZIP2) http://compression.ca/pbzip2/ マルチコアCPUを活用したファイル圧縮 http://sourceforge.jp/magazine/08/02/15/0115238 pbzip2 vs bzip2 http://shrine-bell.seesaa.net/article/107520046.html どっちも並列bzip2の実装。 最近bzip2との互換性が確保されたようなのでpbzip2を試してみた。 カーネルソースを圧縮展開してみたがこれはかなりいい。 LZMAも好きだが圧縮率を求める時代の流れはそろそろ打ち止めだろう。 バランスの面ではpbzip2の方がかなりいい印象。Linuxではpbzip2がすぐに主流になるはず。 ソースコードの配布じゃ、今のところ、tar.gz か tar.bz2 がほとんど ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる