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