[Namazu-devel-ja 778] Re: File::MMagic::checktype_data

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2005年 12月 16日 (金) 22:05:20 JST


寺西です。

NOKUBI Takatsugu wrote:
> 
>   正規表現をたくさん|で繋げるような処理は、例えばmigemoあたりでもやら
> れています。あちらはそれほど速度低下を感じないのですが、それはmigemoの
> 動作する処理系のregexがGNU regex由来だからでしょうか。

手元では、m/(aa|bb|cc)/mg; より分解した方が速かったという残念な
結果が得られていますが、regex の実装に依存するようなら処理系
依存なので、これは m/(aa|bb|cc)/mg; のままで良いような気は
しますね。

むしろ、高速化したいのなら GNU regex(が速いのかどうかわからない
けれども)を使いましょうとかいうのが良いような。
# Perl をコンパイルできるならばね。やっぱりキツイかな??

> > ソートのコストとマッチングの高速化がつりあっているのか
> > どちらもそれほど大きく影響がないということかは確かめていません。
> 
>   これを実装した当時と今とではperl自体と実行環境(CPUパワー等)がずいぶ
> ん違うので、段々差がでにくくなっているのかもしれません。

ソートした方が速いにしても、毎回ソートする必要はないので、
ソートする場所は変えても良いような気はします。
一方で、ソートしたことによる高速化がわずかになってきたので
あればソートしなくても良いかもしれません。(プログラムが簡素化
するので。)

>   ともあれ、現状の環境で速くなる方向に改良するのは問題ないと思っていま

高速化するには、総当りでposの最初のものを採用というよりは、
判定順位を指定して、先に判定してふるいに落とすのは大事ですね。
checktype_data に限らずですが。

判定を先にしなければならないもの、より可能性の高いものから
先に判定する、ということを考えると随分性能が向上するのでは
ないかと思います。

後者は先のメールに書きませんでしたが、ほとんどが HTML の
文書ならHTMLから判定する方が効率がいいという話です。
昨今なら、HTML/XMLかPDFかOLEドキュメントかの判断を最初の方に
して、それ以外を後回しにすることでほとんどの文書の判定が
3種類のチェックで終えることができるようになります。

あとはメールぐらいは優先すべきですかね。
# もっとも Namazu に限った話になってしまいますが。

>   とりあえず、近いうちにFile::MMagicのリポジトリもnamazu.orgへ引っ越そ
> うと思っています。一応Tracには"MMagic"というコンポーネントも追加してあ
> るので、バグ報告に関してはそちらへ誘導するつもりです。

はい。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-devel-ja メーリングリストの案内