Naoki Takezoe
takez****@aa*****
2005年 3月 25日 (金) 10:01:15 JST
竹添です。 Hiroaki Sakuma wrote: > 佐久間です. > >>竹添です。 >> >>Hiroaki Sakuma wrote: >> >>>なお,静的な生成とは少し違いますが,今のCGIではどこでボトルネックとなって >>>い >>>るのかをちゃんと調べると,CGIのままでも相当高速に動作するようになることも >>>あ >>>ります. >>>例えばWiki文法のパースが重いなら,中間コードをキャッシュするだけでもかな >>>り速 >>>くなるでしょう. >> >>以前にプロファイルを取っていた時期がありました。 >> >>一番のボトルネックはモジュールのロード(コンパイル)ですね。 >>ページ数が増えてくるとファイルシステムへのアクセスがボトル >>ネックになります。パースはページ数が増えた場合のキーワード >>のオートリンクなどはファイルシステムへのアクセスが発生する >>ため遅いですが、パースそのものはそれほど遅くはないです。 > > > なるほど. > 確かに,Perlはモジュールの読み込み方を変えるだけで,劇的に速度が変わることが > あるので納得です. > mod_perlのようにオンメモリすると高速になるでしょうが,ファイルシステムから直 > 接読み取ると難しいかもしれませんね. > > 必要なモジュールを動的に読み込む,AutoLoaderなどは使えないでしょうか? > 以前,私も自分の作っていたソフトウェアで,モジュールの読み込みに大幅に時間が > 掛かっていることが分かったため,AutoLoaderを導入したところ,かなりの速度向上 > が望めました. > # AutoLoaderで動かすカスタマイズは簡単です FSWikiコアがuseしている外部モジュールには適用可能かもしれませんが、 プラグインも全部モジュールですしね…。 ちなみに現在はlibwwwなど使用頻度の低いと思われるモジュールは使う 必要がない場合はロードしないような作りにはなっています(はず…)。 プラグインも同様で呼び出し時に必要なもののみロードしています。 > 一方でキャッシュを使うと,モジュールを読み込む必要が少なくなり,そこで速度向 > 上が望める可能性があります. > # ただし,こちらは簡単には試せませんから大変ですが 今のキャッシュはプラグイン部分を動的に埋め込んでいますから、キャッ シュモードでも通常使用しているほぼ全てのモジュールが必要になります。 静的出力と同様にプラグインの動的部分は諦めるなど、思い切った割り切り をしないとなかなか性能向上は見込めないんじゃないかと思います。 -- Naoki Takezoe <takez****@aa*****>