Skip to content

キャッシュの改善

yama edited this page Apr 4, 2012 · 7 revisions

A案

  • サイトキャッシュのうち、configを分離。config専用のキャッシュファイルを作る。
  • リクエストを受けた瞬間に、configキャッシュを読み込み、キャッシュに関係するエントリーを判定する。
  • 判定の結果、ほぼデフォルトの状態であれば、URLをベースに、直接ページキャッシュにアクセスする。
  • ページキャッシュを読み込んだら、それがprivate領域に属するものなのか、アンキャッシュスニペットコールを含んでいるかを判定。
  • 条件を満たしていれば、読み込んだページキャッシュをechoしてスクリプト終了。

条件が満たされている場合、サイトキャッシュを読み込まず、documentPerserにもアクセスしないので、かなりのレスポンスアップが期待できるはず。

B案

  • $modx->config['enable_cache']を$modx->config['cache_type']に変更、0|1|2|3の3段階のオプションを設ける
  • $modx->config['cache_type']を2にセットするとスーパーキャッシュモード。プラグインの出力もキャッシュする。1にセットすると既存の動作(これがデフォルト)
  • $modx->config['cache_type']を3にセットすると条件付きGETに対応。業界最速レベル
  • documentParserにアクセスすることなく処理を済ませることを目標とする
  • ミニマムコンフィグを生成する
  • セッションをスタートし、管理画面ユーザとしてログインしているかどうかだけを確認してセッション終了
  • $_POSTを確認
  • キャッシュファイルの内容を取得し、ベンチマーク処理のみ行なってページ出力。ベンチマーク処理を行なうかどうかはミニマムコンフィグを参照
  • キャッシュを生成する場合は、スニペットコールのキャッシュ書式などをチェックし、キャッシュできない場合は通常のMODXの処理にスイッチする