namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mknmz's Order
sugiura@xxxxxxxxxxxx (Sugiura Shiro) wrote:
>それぞれのファイルは1つだいたい3Kbyte弱のそれなりの分布を見せてい
>ると思うことを考えると、mknmzはファイルサイズが一定だと仮定した場
>合、件数"N"ではなくどっちかというと、"N^2"とか(そこまでひどくはな
>いと思うが)そういうオーダーに見えるんですけど、その認識は当たらず
>しも遠からずということでよろしいでしょうか?
さすがにそこまでひどくはありませんが、効率が悪いことはたしかです。
標準では対象ファイルを 5MB 分処理した時点でテンポラリファイルに書
き出し、それ以前のテンポラリファイルとマージします。よって、 220
MB ではその処理が 44回繰り返されます。
しかも処理が進むにつれてその処理は遅くなっていきます。マージの処理
の部分だけを見るとちょうど等差数列のオーダーになると思います。
メモリをたくさん搭載しているなら Makefile の
| OPT_ON_MEMORY_MAX = 5000000
を修正するとマージ処理の回数を減らせます。
# DBMを採用すればもっとましだったのかもしれません
>で、それを踏まえてお伺いしたいことがあるのですが、FAQに出ていた30
>万件以上のファイルをmknmzでindexを作ったと言う方はどのぐらい時間が
>かかったのでしょう?
私が受け取ったメイルによると
| Files: 377,874 files
| Size: 1,349,975,210 bytes
| Keywords: 2,375,372 words
| Wakati: /usr/local/bin/kakasi -ieuc -oeuc -Ea -w
| Version: 1.2.0.1
| Time: 368931 sec.
だそうです。約102時間ですね。マシンの構成はわかりません。
>自分のマシンの中のニュース記事が日々増えていくことを考えると、ちょ
>っと参考にしたいなと思った次第です。
更新はそれほど時間がかからないと思います。インデックスの大部分を書
き直すので一瞬とは言えませんが…。
-- Satoru Takabayashi