Naoki Takezoe
takez****@aa*****
2004年 2月 9日 (月) 14:26:41 JST
竹添です。 # 先日以下のメールを送信したのですが、流れていないようなので # もう一度…。 先に日記のほうに書いてしまいましたが、FSWikiを少しでも高速化 すべく、HTMLのキャッシュを試してみました。以下の3パターンで ベンチマークを取ってみました。 (1)素のFSWiki (2)ページ全体をキャッシュ (3)プラグイン部分のみ動的に生成 (2)だとさすがに速いです。私の開発環境はかなりしょぼいマシン なのですが、大きなページだと2倍ほどの速度になりました。bbs2 やcalenderなど、内部的にincludeを連発しているページだと もっと違いができるかもしれません。 (3)は私の開発環境では(1)とほとんど変わりませんでした。 確かにコンマ数秒は速いのですが、苦労の割にはなんだかなぁ、 という感じです。やはりパース周りのボトルネックはパース処理 そのものよりもパーサ関連やプラグインなど大量のモジュールの 初期化であることがわかります。 で、結論なのですが、キャッシュモードとして(2)の方式を実装 しようと思います。ただし、それだけだとプラグインやクッキー などで問題が発生してしまいますので以下のような対処法を提供 するつもりです。 ・ページの更新があるたびに特定ページのキャッシュを更新する よう指定できるようにしておく。 ・キャッシュ対象としないページを指定できるようにする。 ・キャッシュモード時はクッキーを使用しないようにする。 キーワードの自動リンクやInterWikiに関してはキャッシュを更新 しないと反映されないという割り切りです。これでも用途によって は充分ではないかと思います。 # オートリンクはしたいけどキャッシュもしたいという場合であれば # 毎晩cronでキャッシュを削除することで1日単位でキーワードを # 更新するなどの運用方法が考えられますよね。 もちろん、キャッシュモードをOFFにすれば今までどおり、毎回 動的にHTMLを生成するようにすることもできます(デフォルトでは キャッシュモードはOFFです)。 一応、上記のような整理で行こうと思ってはいますが、悩みどころ が多い機能でもあります。他に良いアイデアがありましたら是非 お聞かせください。 ---- Naoki Takezoe <takez****@aa*****>