Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: perl -d:DProf (Re: HACKING-ja -> mknmz.in)
At Mon, 28 Jul 2003 12:40:49 +0900,
佐藤文優@Samba wrote:
> > > HTMLやメール等のファイルを大量に処理した場合には、
> > > File::MMagic::checktype_data に時間がかかるようですね。
> > ...
> > > という部分があるのですが、これの $token を毎回作成しているのは
> > > 無駄ではないかと思います。たぶん、前処理でできると思うので、
> > > 少し(sort 分ぐらい)は速くなるのではないかと思います。
> >
> > この処理にかかっている時間はほんのわずかで、
> > if ($tdata =~ /$token/mg)
> > のマッチングに相当時間がかかっているようでした。
> > そのため、手を加えてもほとんど影響がありませんでした。失礼しました。
>
> さらに "/o" モディファイアを付けると効果出ませんかね?
>
> if ($tdata =~ /$token/mgo)
ここで "/o" モディファイアを使うのはまずいですね。(^^;
代わりに、new() と addSpecials() されたときに、qr// でコンパイル
しておくとどうでしょう?
my $token = '(' .
(join '|', sort {length($a) <=> length($b)} @{$self->{SPECIALS}->{$type}})
. ')';
$self->{SPECIALS_RE}->{$type} = qr/$token/mg;
...
if ($tdata =~ $self->{SPECIALS_RE}->{$type}) {
...
}
...
new() 内に $self->{SPECIALS} を初期化する処理が
書かれていますが、bless($self) した後に $self->addSpecials(...) を
呼ぶようがいいと思います。 > これは野首さん?
$self->{FILEEXTS} も同様。
--
-- Name: SATOH Fumiyasu -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya @net-thrust.com, @samba.gr.jp, @namazu.org or ...