namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mknmz next generation (Re: filters)
Ryuji Abe <raeva@xxxxxxxxxxxx> wrote:
>> うむむ。あれを Cで書くのは大変だと思います。僕にはちょっとそ
>> の能力も時間もないです。口出しくらいならできるだろうけど。
>
>じゃあ、私がやってみます。自分のスキルではいつ出来上がる
>かわかりませんが。^^;;
おお、すばらしい。たぶんすべてを Cで書くのはしんどいので文書
フィルタの類は perl で処理するといいと思います。 libperl.a
を使えばいいのかな。
もちろん、すべてを Cで書くという方針でもいいです。どうせ C
で書くなら、文書を 1つづつ読み込んで処理する部分を multi
threading にするといいと思います。この処理は並列化できるはず
なので、multi processor の計算機ではぐっと速くなるでしょう。
# 自分が実装するのでなければ身勝手なことが言える :)
>> # C++ という手もあるけど STL を使うと Perl より遅くなってし
>> # まうことが多いようです。(The Practice of Programmingに比較
>> # の例が載っています)
>
>あ、ht://digの主要コンポーネントはC++で書かれていますよ。:)
>libcoomon.aとかlibht.aを作って、インデクサ(htdig)、検索エンジン
>(htsearch)はそれをリンクするようになっています。
「STLを使うと」遅くなるようです。STL (Standard Template
Library) は便利だけど、汎用的なので遅い、ということのようで
す。STLの実装にもよるんでしょうけど。
The Practice of Programing (TPOP) には次の表が載っています。
同じ動作 (自然言語の文生成) をするプログラムを各種の言語で実
装しています。ソースコードは
<http://cm.bell-labs.com/cm/cs/tpop/code.html> から入手でき
ます。
250MHz 400MHz Lines of
R10000 Pentium II source codes
-------------------------------------------------
C 0.36 sec 0.30 sec 150
Java 4.9 9.2 105
C++/STL/deque 2.6 11.2 70
C++/STL/list 1.7 1.5 70
Awk 2.2 2.1 20
Perl 1.8 1.0 18
>> インデックス作成の速度はそれほど重要ではないのでは…というの
>> は言い訳かしら。:)
>
>あと、Cのライブラリにしておくと、いろんな言語から利用し
>やすいだろうし、GNOME Front-Endなどを作るにしてもコマンド
>呼び出しという方法を避けられるだろうという考えもあります。
そうですね。期待しています。:)
p.s.
www.namazu.org への移行は今日中にできそうです。ひとまず Web
だけ引っ越して、他は追って移行します。
-- Satoru Takabayashi