namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: comparison between 1.3.0.10, 1.4.0.0-beta-8 and1.9.3 (Re: Namazu 1.9.3 (Re: Namazu 1.9.2)
# namazu-dev に振ります
sugiura@xxxxxxxxxxxx (Sugiura Shiro) wrote:
>昨日も試した Linux-users ML の最初から1万ファイルぐらい
>
>1.4.0.0-beta-8 549 sec.
>1.9.3 849 sec. 対1.4.0.0-8比 1.54645
>
>昨日の 1.9.2 での計測は conf.pl をそのまま使っていたので、MAX_MEMORY
>のデフォルト値が低く、作業途中で2回ぐらいデータ書き出しをしていたもの
>です。今回はそれを大きくしての作業で途中書き出しなしで計測しました。
なるほど。ところで、 1.4.0.0-beta-8 と 1.9.3 について、イン
デックスの合計サイズをそれぞれ教えてもらえませんか?
>DProf というのをLinux-usersのファイルの方でやってみたので、その結果も
>付けます。
(snip)
>Total Elapsed Time = 938.1626 Seconds
> User Time = 803.8852 Seconds
>Exclusive Times
>%Time ExclSec CumulS #Calls sec/call Csec/c Name
> 18.2 146.5 115.59 176076 0.0001 0.0001 mknmz::hash
> 15.1 121.5 107.23 807165 0.0002 0.0001 File::MMagic::readMagicLine
> 12.2 98.13 98.770 9965 0.0098 0.0099 File::MMagic::checktype_data
> 11.9 95.82 172.36 807165 0.0001 0.0002 File::MMagic::magicMatchStr
> 9.93 79.82 188.56 9943 0.0080 0.0190 mknmz::make_phrase_hash
> 9.51 76.48 75.415 59658 0.0013 0.0013 mknmz::wordcount_sub
> 5.85 46.99 47.743 1 46.996 47.742 find::finddir
> 4.44 35.68 297.94 9965 0.0036 0.0299 File::MMagic::checktype_contents
> 4.04 32.51 32.309 9810 0.0033 0.0033 Text::Kakasi::do_kakasi
> 3.93 31.57 65.704 9943 0.0032 0.0066 mknmz::put_field_index
> 3.74 30.06 140.21 9943 0.0030 0.0141 mknmz::count_words
> 2.66 21.35 8.644 218868 0.0001 0.0000 IO::File::open
> 2.37 19.05 40.027 218868 0.0001 0.0002 util::fopen
> 2.08 16.74 23.441 218868 0.0001 0.0001 IO::File::new
> 2.01 16.14 16.084 9965 0.0016 0.0016 mailnews::mailnews_citation_filter
これを見ると、文書形式の自動判別 (File::MMagic) に 43.64% の
時間を占められていることがわかります。
インデックス作成の対象とするファイルがすべてメイルであるとわ
かっているのに、自動判別に時間を取られるのは馬鹿らしいです。
というわけで、文書の形式を強制的に指定するオプションを mknmz
に追加すると便利そうです。例:
% mknmz --type=message/rfc822
% mknmz --type=text/html
% mknmz --type=application/pdf
message/rfc822 は特別に -h, --mailnews というオプションを割
り当てて、簡単に指定できるようにしたいと思います。
File::MMagic の overhead がなくなれば 1.4.0.0-beta-8 並の速
度が出るでしょう。
File::MMagic の checktype_contents() を使ってまともに文書形
式を判別すれば時間がかかるのは仕方がないので、
checktype_byfilename() だけで判別するオプションを mknmz につ
けるとよさそうです。 mknmz --easyguessing といった感じで。
# %FILEEXTS の定義は少ないですね。Apache の mime.types から
# MIME type と Extension の対応表をもらってくるといいかな?
-- Satoru Takabayashi