namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Namazu 1.9.2
- From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
- Date: Tue, 7 Sep 99 13:57:48 JST
# namazu-devの方に振ります。
<199909070355.MAA12306@xxxxxxxxxxxxxx>の記事において
私は書きました。
>> >> my $mtype_c = $mm->checktype_contents($$contref);
>> >>
>> >> にかなり時間を取られている。File::MMagic の
>> >> checktype_contents() を改良する必要がある。
>> >> よろしくお願いします。 > 野首さん
>>
>> そうだろうという気はしてました...
実際のボトルネックがどこにあるのかを調べるために、profilerにかけて
ました。
Devel::DProfをインストールし、perl -d:DProf mknmzとして実行した後生
成されたtmon.outをdprofpp -uにかけた結果、以下の通りになりました。
# HTML 35 file(hns 2.0pl0のドキュメント)を処理対象としています。
Total Elapsed Time = 18.99530 Seconds
User Time = 10.43520 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
25.7 2.690 2.690 1 2.6900 2.6899 mknmz::write_phrase_hash_sub
11.4 1.190 1.154 14549 0.0001 0.0001 mknmz::hash
10.9 1.147 1.788 3564 0.0003 0.0005 File::MMagic::readMagicEntry
6.32 0.660 0.660 36 0.0183 0.0183 File::MMagic::checktype_data
5.75 0.600 0.599 217 0.0028 0.0028 mknmz::wordcount_sub
5.75 0.600 0.557 17280 0.0000 0.0000 IO::Handle::eof
4.88 0.509 1.657 36 0.0141 0.0460 mknmz::make_phrase_hash
4.69 0.489 0.524 35 0.0140 0.0150 html::weight_element
4.02 0.420 0.413 2916 0.0001 0.0001 File::MMagic::readMagicLine
3.83 0.400 0.798 2916 0.0001 0.0003 File::MMagic::magicMatchStr
2.29 0.239 3.220 36 0.0066 0.0894 File::MMagic::checktype_contents
1.92 0.200 0.865 36 0.0055 0.0240 mknmz::count_words
1.82 0.190 0.190 1 0.1900 0.1898 mknmz::write_index_sub
1.25 0.130 0.130 70 0.0019 0.0019 gfilter::line_adjust_filter
1.15 0.120 0.130 1 0.1199 0.1297 mknmz::load_modules
readMagicEntryが問題になっているようです。この関数は、File::MMagicが
内包しているmagic fileからエントリを読み出すという処理を行うものなので
すが、File::MMagic objectを1 fileごとに生成しているため、毎回この関数
が呼ばれるのが重くなる原因のようです。
objectを最初に1つだけ生成し、それを使い回すようにするだけでかなり改
善できそうですので、一度そのように修正して動作チェックをしてみます。
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
nokubi@xxxxxxxxx (official)