a-blog cmsで動的ページ生成の速度を改善するために
11/10/04 09:47
動的ページ生成の速度を改善したい
動的ページの生成が遅いことは色々なデメリットがあります.
- クローラが無遠慮なURL探索をかけてきたときに負荷があがりやすい
- 規模が大きいとキャッシュをリフレッシュするたびに負荷があがる
- 運用者がログインした状態でサイト内を巡回するときにストレス
日常的には,3番目が特に重要ですね.とりあえず今回は遅くなりがちなテンプレート上の原因を紹介してみます.
生成速度の確認方法
アクセスログを取得する設定になっていれば,log_accessテーブルに記録されています.大雑把には以下のログを眺めるだけでも,平均的にどの程度の所要時間なのかは分かります.
- log_access_url
- どのURLに対するアクセスか
- log_access_publish
- ページ生成方法.dynamic → 動的生成,static → 静的(キャッシュ利用)
- log_access_res_time
- リクエストを受けてから,レスポンスをブラウザに返すまでの所要時間
ありがち 色々とTouchモジュールで隠している
モジュールは入れ子になっている場合,内側から順番に解釈されます.
このEntry_SummaryはEntry以外のときでも処理されている
Touchモジュールで隠していたとしても,その中のモジュールは毎回きちんと評価されて処理コストを支払っていることになります.
Touchモジュールで色々隠しながらズバズバ分岐させるぐらいなら,テンプレートを分けてしまったほうがページ生成コストは安くあがります,
じつは 標準のinclude類もコストは安くない
切り詰めていくと,管理パーツのinclude類もログインしていない状態の動的生成にとっては無駄なコストになります.
ただし,これらを最適化していく,たしかに効果はあるのですがカスタマイズとしてはややこしくなりがちですのでご注意を.
管理系ボタンのテンプレート
管理ボタン系のテンプレートですが,この中にはAdmin_ActionMenuモジュールが含まれていて,更にその中に多くのTouchモジュールなどが含まれています.ログインしていなければ無駄な要素なので,可能な限り読み込まないほうが高速になります.
エントリー編集時のテンプレート
Entry_Bodyの中腹にあるやつですね.これもadminEntryEditブロックの判定で隠されているだけで,includeファイルの中の多くは何かしらの評価がされているため相応の処理コストを支払っています.
次回につづきます
そんなわけで,今回は動的ページ生成の速度を改善するために,遅くなる要因について紹介しました.
長くなってきてしまったので,次回(いつだろう?)で解決例を出そうかと思います.ヒントはグローバル変数!ではでは.
a-blog cms1周年記念パック 限定テーマの裏側をご紹介します!
10/07/10 11:02
こんにちは、足立です。
すっかり夏になりました。
a-blog cms1周年記念パックに入っている限定テーマのカスタマイズ部分の裏側をご紹介します。
限定テーマのサンプルで掲載されている素敵な写真はs-style-artsのおかださんに提供していただきました!本当にありがとうございます!!
飲食店用テーマ
1つめは飲食店テーマです。
主な機能
- トップのスライド
- 日替わりメニュー
- 営業日カレンダー
- Twitterと連携
- flickrと連携
Photoギャラリーテーマ
2つめはギャラリーテーマです。
主な機能
- Flashのようなインパンクトのある背景画像
- エントリーのタイトルをタイプライター風に表示
- 投稿した写真の自動スライド
「a-blog cms1周年記念パック 限定テーマの裏側をご紹介します!」の続きを読む




