【gzip】圧縮対決【bzip2】

1 :login:Penguin:2008/06/28(土) 12:02:14 ID:yqbrlAKF.net
さあ語れ!

58 :login:Penguin:2012/09/19(水) 11:37:55.89 ID:VGlr+QY5.net

>>57
マジで? version教えてくださいな。
こちらは、
xz –version
xz (XZ Utils) 5.1.0alpha
liblzma 5.1.0alpha

37 :login:Penguin:2009/06/13(土) 14:54:01 ID:pu4qsGER.net

dpkgでほほぅ、と思ったがtarもか。
〜1GhzのCPUでは結構しんどい仕事だから標準をどうするかは難しそう

37 :login:Penguin:2009/06/13(土) 14:54:01 ID:pu4qsGER.net

dpkgでほほぅ、と思ったがtarもか。
〜1GhzのCPUでは結構しんどい仕事だから標準をどうするかは難しそう

18 :login:Penguin:2008/07/01(火) 16:02:48 ID:sogkEXkC.net

>>17
シャノンの定理は対象の情報源以外から情報を得られないから
成り立っているように見えるんだよ。

61 :login:Penguin:2013/01/06(日) 09:47:59.98 ID:A9uhtYyK.net

>>59
> tar cJf logs_with_dir.tar.xz log
> tar cJf logs_without_dir.tar.xz log/*.log

“*.log”以外のファイルやディレクトリがあるんじゃないのか。
前者はlogディレクトリ以下の全てのファイルとディレクトリを対象とするが、
後者はlogディレクトリ以下の”*.log”のみを対象としている。

14 :login:Penguin:2008/06/30(月) 15:51:13 ID:MmUObtGR.net

なぜgzip > bzip2?

48 :login:Penguin:2010/05/27(木) 02:45:52 ID:BLNLE82C.net

bzip2 は展開が遅いから、さっさと lzma 系のどれかに置き換わって欲しいな。

39 :login:Penguin:2009/06/13(土) 22:56:07 ID:5NJGz6mZ.net

ファイルサイズとMD5メモしておけば、
そのうち元のファイルが復元できると言い張る奴がいたな

36 :login:Penguin:2009/06/13(土) 14:34:22 ID:QBNkjNcg.net

いつの間にかgnu tarがlzmaに対応してるな。
dpkgの依存にlzmaが入っていたりもするし、そろそろlzmaが入ってない環境っていうのは珍しいくらいなのかも。

79 :login:Penguin:2016/01/21(木) 16:01:55.90 ID:ZsqpdWQX.net

BWTのの改良方法考えたんだけど、方法書くから誰かプログラム組んでもらえない?
プログラム起こす人いたら、仕様書きます。

BWTのWikipedia見て思いついたことなので、私の仕様に不備があったら、
プログラム書かなくっても教えてもらえると助かる

22 :login:Penguin:2008/07/01(火) 23:44:12 ID:5YakOucX.net

>>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書庫などをマウントポイントからディレクトリとして使える物みたい

20 :login:Penguin:2008/07/01(火) 21:06:14 ID:sCmwJD84.net

>>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.

57 :login:Penguin:2012/09/19(水) 08:12:29.64 ID:CELmho/s.net

>>56
xzなら-Tでスレッド数を指定できるな。

19 :login:Penguin:2008/07/01(火) 20:24:40 ID:/jkPTzMU.net

圧縮が遅いのは放っておけばいいので問題ないんだが、展開が遅い奴は嫌だな。

74 :67:2013/01/09(水) 22:44:39.42 ID:Q9Cbtgql.net

>>67のときと同じのを展開した後はこれで
tar cJf logs_with_dir2.tar.xz log
tar cJf logs_without_dir.tar.xz log/*.log

Mem: 767544 97056 670488 0 15600 67276
-rw-r–r– 1 aaa users 13908 1月 9 22:33 logs_with_dir.tar.xz
-rw-r–r– 1 aaa users 16948 1月 9 22:36 logs_with_dir2.tar.xz
-rw-r–r– 1 aaa users 13812 1月 9 22:34 logs_without_dir.tar.xz

Mem: 1165120 359552 805568 0 7776 196436
-rw-r–r– 1 aaa users 13908 1月 8 00:47 logs_with_dir.tar.xz
-rw-r–r– 1 aaa users 13828 1月 9 22:35 logs_with_dir2.tar.xz
-rw-r–r– 1 aaa users 13812 1月 9 22:36 logs_without_dir.tar.xz

同じPCでも今回はサイズが微妙に違った

10 :login:Penguin:2008/06/29(日) 22:11:03 ID:W919QOx7.net

>>8
中身違うと思う。LGPLなLZOはffmpegのlibavutilにあった気ガス。あと7zにもあったような。

11 :login:Penguin:2008/06/30(月) 08:41:57 ID:KlvCVv7N.net

なぜgzipは解凍でもとのファイルが消える仕様?

64 :59:2013/01/07(月) 18:50:41.98 ID:dCQMeIg4.net

>>63
両方↓やってみた。
$ tar cf – log/*.log|xz > logs_without_dir_pipe.tar.xz
$ tar cf – log|xz > logs_with_dir_pipe.tar.xz

$ ls -sh1 logs_with*_dir_pipe.tar.xz
1.3M logs_with_dir_pipe.tar.xz
416K logs_without_dir_pipe.tar.xz

$ xz -l logs_with*_dir_pipe.tar.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 1,246.3 KiB 702.6 MiB 0.002 CRC64 logs_with_dir_pipe.tar.xz
1 1 414.7 KiB 702.6 MiB 0.001 CRC64 logs_without_dir_pipe.tar.xz
——————————————————————————-
2 2 1,660.9 KiB 1,405.3 MiB 0.001 CRC64 2 files

やっぱり、当たり前と言えば当たり前だけど、結果は同じ。
あんまり関係ないと思うけど、念の為ログの説明しとくと、
hyperestraierインデックス作成時(maildir対象)のログね。
cronで回した際のログなので使用文字列の重複率非常に高し。

17 :login:Penguin:2008/07/01(火) 15:12:55 ID:SCsR7P7s.net

>>16
ヒント: シャノンの理論

51 :login:Penguin:2010/07/23(金) 08:23:17 ID:+OeBNNzx.net

はやくなあれ〜

27 :login:Penguin:2008/07/17(木) 03:07:45 ID:A+BRuM6X.net

lzmaはシングルスレッドだし、p7zipはパイプで使えないしで、
lzmaの4.999α版コンパイルしてみたけど、マルチスレッドにならないし。
7zファイル形式がパイプで使えない原因らしいから、
p7zipがlzmaファイル形式をサポートして、パイプで使えるようになったら良いな〜

53 :login:Penguin:2012/08/05(日) 14:48:46.70 ID:wvwj6mGz.net

あげ

7 :login:Penguin:2008/06/29(日) 04:36:43 ID:LnGyI9MO.net

自分しか使わないファイルはlzma(.tar.lzmaとか)、
誰かに渡すファイルはgzとかbz2にしてる。

56 :login:Penguin:2012/09/08(土) 17:36:34.37 ID:D8s+KTbM.net

圧縮・伸張のマルチコア対応ってどうなっているんでしょうね

62 :59:2013/01/06(日) 18:01:23.59 ID:zqjwY8tC.net

>>61
おー、やっと反応があった。

> “*.log”以外のファイルやディレクトリがあるんじゃないのか。
それが logディレクトリ配下には “*.log”しか置いてないのよ。

$ tar tvJf logs_without_dir.tar.xz | wc -l
210
$ tar tvJf logs_with_dir.tar.xz | wc -l
211

1行違うのはディレクトリ自身の分ね。
それに >>60の “xz -l” の結果を見ても、
Uncompressed のサイズはどっちも 702.6 MiB だし。

69 :67:2013/01/08(火) 00:05:54.47 ID:TM+tkKtJ.net

Slackware 14.0
tar (GNU tar) 1.26
xz (XZ Utils) 5.0.4
liblzma 5.0.4
だった

12 :login:Penguin:2008/06/30(月) 12:47:59 ID:t5z30P/R.net

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

77 :login:Penguin:2013/04/01(月) 23:37:56.61 ID:8w3a7CB+.net

>>67 >>75
今更だが気になったので実験。
ファイルはGNUのtar-1.26.tar.xzを使用した。

Debian wheezy 7.0
tar 1.26
xz (XZ Utils) 5.1.0alpha
liblzma 5.1.0alpha
Mem: 8104148 2631116 5473032 0 21232 1628468

これをgz,bzip2,xzでそれぞれ -c をつけてリダイレクトして圧縮する。

$ tar -cf tar_with.tar tar-1.26
$ tar -cf tar_without.tar tar-1.26/*
$ du -b * | sort
14899200 tar_with.tar
14899200 tar_without.tar
1763224 tar_without.tar.xz
1788988 tar_with.tar.xz
2348783 tar_without.tar.bz2
2360563 tar_with.tar.bz2
3455923 tar_without.tar.gz
3456187 tar_with.tar.gz

となった。.tarを比較してみる。

$ diff tar_with*.tar
バイナリファイル tar_with.tar とtar_without.tar は異なります

と出力されたのでtarの方に原因があると思われ。
ディレクトリの有無によるファイルサイズの違いについては
xz-utilsよりtarのソースを読んだ方がいいかもしれない。

30 :login:Penguin:2009/06/07(日) 19:25:33 ID:eb8s04gy.net

lbzipもpbzip2とか・・・

26 :login:Penguin:2008/07/07(月) 13:53:12 ID:DoQMtzeM.net

$ 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と同じ環境。
合わせて評価すると速さと圧縮率のバランスがいいかもしれない。

40 :login:Penguin:2009/06/14(日) 00:35:26 ID:d8gKzCk8.net

ファイルで思い出したが、 file(1)では、まだlzma形式を認識できないようだ
少なくとも file-5.00 は。

60 :59:2013/01/01(火) 21:32:41.16 ID:pDNF1piR.net

すると、これ↓くらい違っちゃうんだよね。

ls -sh1 *.tar.xz
416K logs_without_dir.tar.xz
1.3M logs_with_dir.tar.xz

$ xz -l logs_*_dir.tar.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 414.7 KiB 702.6 MiB 0.001 CRC64 logs_without_dir.tar.xz
1 1 1,246.3 KiB 702.6 MiB 0.002 CRC64 logs_with_dir.tar.xz
——————————————————————————-
2 2 1,660.9 KiB 1,405.3 MiB 0.001 CRC64 2 files

んで、試しに 7z で圧縮するとこれくらい。
$ 7z a logs.7z log
$ ls -sh1 *.7z
428K logs.7z

なんで?
ちなみに tar.gz や tar.bz2 で試すとほとんど差は出なかった。
何も困ってはいないんだけど不思議なので聞いてみた。

63 :login:Penguin:2013/01/07(月) 08:57:09.04 ID:N811VClS.net

ためしに
tar cf – log/*.log|xz > logs_without_dir_pipe.tar.xz
してみるとどう?

45 :login:Penguin:2010/05/22(土) 18:22:29 ID:RMv2w9HG.net

lzfかなりいいね。圧縮率に目をつぶれば。
lzoイラネ。

ホントはbzip2系が画像圧縮で有利な技術だから使いたいんだけど、
展開が遅いのがねー。

52 :login:Penguin:2011/10/27(木) 19:56:40.98 ID:TsQJCJm5.net

xz 試してみたけどいいね
古いマシンだとcpu もメモリも辛いけど

42 :login:Penguin:2009/06/22(月) 15:09:23 ID:nPX8bYX0.net

xz

4 :login:Penguin:2008/06/28(土) 13:37:22 ID:eSYX5VPr.net

71 :login:Penguin:2013/01/08(火) 00:38:08.97 ID:Yi/2g8hy.net

最後のPCでwithoutのほう試すの忘れて電源切っちゃったけど
多分13800前後になるんだと思う
なんでか分からないけどディレクトリ付きのほうが
圧縮するときメモリ使うってことじゃないかな

23 :login:Penguin:2008/07/02(水) 00:13:11 ID:8emwfkfD.net

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%)

2 :login:Penguin:2008/06/28(土) 12:21:18 ID:8VBYMaXo.net

lzmaは???

47 :login:Penguin:2010/05/26(水) 11:51:58 ID:zj479Z71.net

gnuのソースやlinuxの起動イメージも
lzmaになってきたな
復元は圧縮より速いんだっけ

44 :login:Penguin:2009/11/01(日) 16:47:53 ID:jDaGKrnO.net

自己解凍exeは不安なのに
解凍したzip中のexeは普通に開く不思議

43 :login:Penguin:2009/10/16(金) 21:16:27 ID:zxtkfFrH.net

>>41
へぇー。
でも.exeってウィルス疑惑で忌避される傾向にある気がする。

6 :login:Penguin:2008/06/29(日) 01:55:30 ID:jKsDLLyz.net

最近は細かいこと考えずにlzmaばかりだな・・・
PCの性能は十分あるんだし

35 :login:Penguin:2009/06/13(土) 10:03:53 ID:0tnCgkV1.net

>>34
それは書こうかと思ったけどまだ新しすぎるよな・・って思って普及してきてるに止めた。
7zipとしてWindowsでかなり有名なんじゃないかと。

elinksか何かがgzip,deflate以外にbzip2,lzmaが使えたと思うが
ネットでは対応サーバーが皆無だわな

70 :67:2013/01/08(火) 00:24:54.72 ID:Yi/2g8hy.net

ひょっとしてと思ってたけど、これ多分メモリの搭載量によって結果変るんだと思う

さっきやったPCでまた新しくデータを作ってからlogs_with_dir.tar.xzを作って
それを別の二台に送って解凍してからまた固めたらこうなった
一番上が最初のPC

Mem: 1165120 696316 468804 0 10940 328680
Mem: 3915520 129536 3785984 0 9660 85404
Mem: 767544 97744 669800 0 15752 67784

-rw-r–r– 1 aaa users 13908 1月 8 00:09 logs_with_dir.tar.xz
-rw-r–r– 1 aaa users 13828 1月 8 00:12 logs_with_dir.tar.xz
-rw-r–r– 1 aaa users 16948 1月 8 00:16 logs_with_dir.tar.xz

xzとtarは全部同じバージョン

66 :59:2013/01/07(月) 19:58:52.41 ID:dCQMeIg4.net

結果:

$ xz -l logs_with*dir.tar.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 16.9 KiB 46.4 MiB 0.000 CRC64 logs_with_dir.tar.xz
1 1 13.8 KiB 46.4 MiB 0.000 CRC64 logs_without_dir.tar.xz
——————————————————————————-
2 2 30.7 KiB 92.8 MiB 0.000 CRC64 2 files

$ gzip -l logs_with*dir.tar.gz
compressed uncompressed ratio uncompressed_name
5114261 48650240 89.5% logs_with_dir.tar
5114237 48650240 89.5% logs_without_dir.tar
10228498 97300480 89.5% (totals)

※ bzip2 は “-l” オプションなし

$ ls -al logs_with*tar*
-rw-r–r– 1 hiro hiro 48650240 2013-01-07 10:27 logs_with_dir.tar
-rw-r–r– 1 hiro hiro 549025 2013-01-07 10:28 logs_with_dir.tar.bz2
-rw-r–r– 1 hiro hiro 5114261 2013-01-07 10:27 logs_with_dir.tar.gz
-rw-r–r– 1 hiro hiro 17336 2013-01-07 10:30 logs_with_dir.tar.xz
-rw-r–r– 1 hiro hiro 48650240 2013-01-07 10:27 logs_without_dir.tar
-rw-r–r– 1 hiro hiro 543453 2013-01-07 10:30 logs_without_dir.tar.bz2
-rw-r–r– 1 hiro hiro 5114237 2013-01-07 10:27 logs_without_dir.tar.gz
-rw-r–r– 1 hiro hiro 14120 2013-01-07 10:31 logs_without_dir.tar.xz

logs_with_dir.tar.xz の方が 1.2倍くらい大きくなる。
三倍も差があるわけじゃないけど、圧縮率の差が大きいのは
やっぱり tar.xzなんだよなぁ。
*.tar 大きさ同じなのになー、やっぱ不思議。

72 :login:Penguin:2013/01/08(火) 00:42:37.31 ID:Yi/2g8hy.net

と適当なこと書いたけどxzやってる間そんなメモリ使ってないな

59 :login:Penguin:2013/01/01(火) 21:31:45.52 ID:pDNF1piR.net

誰か教えてちょうだい。
年も明けたことだし去年のログファイルでも圧縮するかと思って、
tar.xz に圧縮してみたんだけど、tar に引数を渡すのに
ディレクトリ名を渡すのと、ファイル名を渡すので
圧縮後のファイルサイズが 3倍くらい違うんだけどなんで?

$ apt-show-versions tar bzip2 gzip xz-utils
bzip2/squeeze uptodate 1.0.5-6+squeeze1
gzip/squeeze uptodate 1.3.12-9
tar/squeeze uptodate 1.23-3
xz-utils/squeeze uptodate 5.0.0-2

# ログファイル数 212、logディレクトリ容量 703MB
$ find log |wc -l
212
$ du -m log
703 log

みたいな環境で、

tar cJf logs_with_dir.tar.xz log
tar cJf logs_without_dir.tar.xz log/*.log

ってそれぞれ実行。

46 :login:Penguin:2010/05/23(日) 10:18:27 ID:JQh/i7Pu.net

https://issues.apache.org/jira/browse/AVRO-135
java中心でもいろいろ議論あって面白いなあ

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

最近のコメント

匿名 : 合同会社グラウンドステップ 被害者の会 part2
 吉川利幸さんが社長を務めるランサーズでの評価 すご... (5/05)
匿名 : Opera12(Presto) Part8
 Dragonflyが使えなくなったorg (6/25)
匿名 : あえてコマンドライン禁止のLinux
 いまではほとんどのディストリのインストで日本語環境までコマン... (6/15)
ページTOPへ↑