Hiroaki Sakuma
hiroa****@sakum*****
2005年 3月 25日 (金) 09:47:32 JST
佐久間です. > 竹添です。 > > Hiroaki Sakuma wrote: > > > > なお,静的な生成とは少し違いますが,今のCGIではどこでボトルネックとなって > > い > > るのかをちゃんと調べると,CGIのままでも相当高速に動作するようになることも > > あ > > ります. > > 例えばWiki文法のパースが重いなら,中間コードをキャッシュするだけでもかな > > り速 > > くなるでしょう. > > 以前にプロファイルを取っていた時期がありました。 > > 一番のボトルネックはモジュールのロード(コンパイル)ですね。 > ページ数が増えてくるとファイルシステムへのアクセスがボトル > ネックになります。パースはページ数が増えた場合のキーワード > のオートリンクなどはファイルシステムへのアクセスが発生する > ため遅いですが、パースそのものはそれほど遅くはないです。 なるほど. 確かに,Perlはモジュールの読み込み方を変えるだけで,劇的に速度が変わることが あるので納得です. mod_perlのようにオンメモリすると高速になるでしょうが,ファイルシステムから直 接読み取ると難しいかもしれませんね. 必要なモジュールを動的に読み込む,AutoLoaderなどは使えないでしょうか? 以前,私も自分の作っていたソフトウェアで,モジュールの読み込みに大幅に時間が 掛かっていることが分かったため,AutoLoaderを導入したところ,かなりの速度向上 が望めました. # AutoLoaderで動かすカスタマイズは簡単です 一方でキャッシュを使うと,モジュールを読み込む必要が少なくなり,そこで速度向 上が望める可能性があります. # ただし,こちらは簡単には試せませんから大変ですが ちなみに,静的なファイルの出力はプログラム的には相当手間で,バグが潜む可能性 も高く,メンテも大変になります. ユーザサイドで簡単に静的なファイルを出力する方法があります.wgetなどの,http ミラーリングツールを使い,HTTPサーバ経由でFSWikiの出力をHTMLとして保存してし まうのです.mod_rewriteなどを活用することで,URLの変換も行えば,全て静的な ページだけで構成できます. Wikiの編集後,ミラーリングの作業が必要となる点がネックで結果的には負荷が増え ますが,アクセスが多いサイトの場合は有効となるかもしれません. ===================== Sakuma,Hiroaki hiroa****@sakum*****