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