キャッシュによる高速化

  • ページ: Develop/Modification1
  • 投稿者: ぃぉぃぉ
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: その他
  • 投稿日: 2011-10-20 (木) 20:26:30
  • バージョン:

メッセージ

ページデータのキャッシュ化

ページ部分のhtmlデータは書き込み時に生成しちゃって高速化しよう。ただし、各プラグインに動的表示があるかどうかのフラグを持たせ、必要な場合は毎回htmlを生成するようにする。

書込み時

キャッシュ削除

表示時

キャッシュ可能か、はページ毎に判断すること。でないとinclude等ではまる。

&_now;, &lastmod;などの表示時置換文字が有る場合にもキャッシュ不可能だな。判別処理追加しなきゃ。

プラグイン毎の対応

  • $vars['cache_enable']['plugin名']
    • pluginを呼ぶ前にfalseにする。
      • lib/plugin.phpのdo_plugin_convert()とdo_plugin_inline()
    • plugin中でcache化してokであれば、trueにする。
      • だめなpluginの例 ... ls2、pagetree、counter、include、related
    • 複数回呼ばれると、後勝ちになってしまう。プラグインの中で動作が変わりうるものについては、NGの場合、['plugin名']を['plugin名_nocache'](=FALSE)とする。

キャッシュファイル

HTCACHE_DIRに'../'.DATA_DIR.'htc/'でどうかな。

CACHE_DIRとしてcache/を使いたいところだけど、現状違う使われ方をしているし、とりあえず分けておこう。

/data/htc/ページ名エンコード.html

これで、通常のデータと同じ文字数になるので、ファイル名長さ問題が軽減される。(従来より悪くならない)

/data/wiki/ページ名エンコード.txt

ページ削除時に削除対象ファイルとすることも忘れずに。

関数

  • is_cached()
  • page_cache()
  • get_cache()
    • ページ名のキャッシュを取得。キャッシュがあれば取得。無ければconvert_html()
  • make_cache()
    • $vars['cache_enable']をチェックして、全てtrueであればキャッシュファイル生成。convert_html後のテキストファイルを置く。一つでもNGならファイル削除。

  • relatedとかincludeを多用したページとかで動作が軽くなるはず。 -- ぃぉぃぉ 2011-10-20 (木) 20:27:40
  • 大体実装は終わってるんだよな〜。いつ適用しようか。 -- ぃぉぃぉ 2011-11-02 (水) 17:30:30


トップ 編集差分バックアップ添付複製名前変更リロード 新規一覧 単語検索 最終更新  ヘルプ  最終更新のRSS