アルファサード株式会社 (かぶしきがいしゃ) 代表 (だいひょう) 取締役 (とりしまりやく) 野田 (のだ) 純生 (すみお) のブログ


MovableType, (さい) 構築 (こうちく) 高速 (こうそく) () (<$MTInclude file...$>とBackground Rebuilder Plugin)。


公開 (こうかい) () : 2007-04-04 22:04:01


2 (つき) にサーバーを () えてFastCGI環境 (かんきょう) 移行 (いこう) してから、とにかく快適 (かいてき) 高速 (こうそく) になった。 FastCGIだけでなくサーバーのメモリ,CPUやHDD, (とう) 問題 (もんだい) (おお) きいのだと (おも) う。

こうなったらとことんMovableTypeの高速 (こうそく) () にチャレンジしてやろう! ということで、体感 (たいかん) 速度 (そくど) () げる () () みや検索 (けんさく) 高速 (こうそく) () (とう) 色々 (いろいろ) やっているのだが、もっと基本 (きほん) (?) (てき) 部分 (ぶぶん) 着手 (ちゃくしゅ) することにした。

参考 (さんこう) エントリー:

このブログは (けっ) してエントリーも (おお) (ほう) ではないが(エントリー (すう) で140 (きょう) )、検索 (けんさく) インデックス作成 (さくせい) (よう) Hyper Estraier文書 (ぶんしょ) ドラフト同時 (どうじ) () () している関係 (かんけい) もあり、 (いち) (かい) 全体 (ぜんたい) (さい) 構築 (こうちく) で300 (きょう) のファイルが () () される。一時 (いちじ) 全体 (ぜんたい) (さい) 構築 (こうちく) が10 (びょう) 前後 (ぜんご) まで高速 (こうそく) () されていたが、テンプレートの改造 (かいぞう) やエントリーの増加 (ぞうか) 、さまざまなプラグインによるカスタマイズに (したが) って、 (ふたた) び20 (びょう) (きょう) かかるようになっていた(それでも充分 (じゅうぶん) (はや) いと (おも) うけど)。

今回 (こんかい) やってみたのが、テンプレートのうちの共通 (きょうつう) 部分 (ぶぶん) (サイドバー)」の共通 (きょうつう) ファイル () である。

サイドバー部分

参考 (さんこう) サイト:

PHPやSSIで (さい) 構築 (こうちく) 高速 (こうそく) () する手法 (しゅほう) (かんが) (かた) (おな) じ。 (ただ) 今回 (こんかい) はPHPでもSSIでもなく、<$MTInclude file="/path/to/file"$> で (さい) 構築 (こうちく) () にファイルをインクルードする。あくまでもスタティックなファイル出力 (しゅつりょく) 閲覧 (えつらん) () のサーバー負荷 (ふか) にこだわるのだ。
また、ファイルのインクルード以外 (いがい) にも (おも) いつくところは (つぶ) しておこうと (おも) ったのであわせて () いておこう。

プラグインやMTの拡張 (かくちょう) プログラムを (つく) ったり開発 (かいはつ) 案件 (あんけん) とかにも使 (つか) っているから、時間 (じかん) のかかる「ツボ」部分 (ぶぶん) はよく () かっているつもりで、このサイトの右側 (みぎがわ) のカラムのように (かく) ページカテゴリーの一覧 (いちらん) 最新 (さいしん) のエントリーの一覧 (いちらん) 出力 (しゅつりょく) するためにいちいちデータベースにアクセスしてループさせてたら時間 (じかん) がかかって () たり (まえ)

具体 (ぐたい) (てき) 施策 (しさく) 以下 (いか) (とお) り。

  1. 不要 (ふよう) なテンプレートを (さい) 構築 (こうちく) 対象 (たいしょう) から (はず) す。
  2. 不要 (ふよう) 処理 (しょり) をテンプレートから削除 (さくじょ) する。
  3. 共通 (きょうつう) 部分 (ぶぶん) ( (みぎ) ナビゲーション)を「インデックスアーカイブ」として( (れい) : include/sidebar.html) ファイルに () () すようにする。
  4. (かく) テンプレートのナビゲーション部分 (ぶぶん) を「<$MTInclude file="/path/to/htdocs/online/include/sidebar.html"$> 」のようにしてインクルードするようにする。

Site JavaScript, スタイルシートなんかは毎回 (まいかい) (さい) 構築 (こうちく) 必要 (ひつよう) はなく修正 (しゅうせい) () にだけ (さい) 構築 (こうちく) すれば () い。ということで「インデックス・テンプレートを (さい) 構築 (こうちく) するときに、このテンプレートを自動的 (じどうてき) (さい) 構築 (こうちく) する」チェックを (はず) す。ダイナミック・パブリッシングでなければ「Dynamic Site Bootstrapper(mtview.php)」も不要 (ふよう)

再構築オプションのチェックを外す

たいした問題 (もんだい) ではないかもしれないが mt-config.cgiにも「PublishCommenterIcon 0」を指定 (してい) して「nav-commenters.gif」が () かれないようにする。

また <MTBlogIfCCLicense> とか (いち) () () めてしまえば不要 (ふよう) なもの、あるいは「追記 (ついき) (more)」を使用 (しよう) していないのであれば「 <MTIfNonEmpty tag="EntryMore" convert_breaks="0">」のブロックとかも不要 (ふよう)

カテゴリーアーカイブが (かなら) () かれる設定 (せってい) であるのなら「<MTIfArchiveTypeEnabled archive_type="Category">」のブロックもいらない。「タグ」を使 (つか) っていないとか、自分 (じぶん) のスタイルにあわせて不要 (ふよう) 部分 (ぶぶん) 削除 (さくじょ) していく。その (ぶん) プログラムがデータをチェックする( (わず) かではあるが)処理 (しょり) 省略 (しょうりゃく) できる。

デフォルトテンプレートではこれらのタグがあるし、前述 (ぜんじゅつ) (とお) 毎回 (まいかい) (さい) 構築 (こうちく) 必要 (ひつよう) ないテンプレートも (はい) っているから、そのあたりの掃除 (そうじ) (おこな) う。

基本 (きほん) これで () (はず) なのだが、ひとつ問題 (もんだい) がある。PHPやSSIと (ちが) ってこの方法 (ほうほう) 場合 (ばあい) インクルードされるのは (さい) 構築 (こうちく) 瞬間 (しゅんかん) であるから、エントリーを保存 (ほぞん) する (とき) に「エントリー保存 (ほぞん) 」→「サイドバー保存 (ほぞん) 」の (なが) れだと、エントリー保存 (ほぞん) () にサイドバーはまだ更新 (こうしん) されていない、という問題 (もんだい) 発生 (はっせい) するのだ(そして、MTは実際 (じっさい) にそういう () () いをする)。

エントリーを更新 (こうしん) するたびに2 (かい) (さい) 構築 (こうちく) する、あるいは「サイドバー」を (さい) 構築 (こうちく) してから全体 (ぜんたい) (さい) 構築 (こうちく) (おこな) えば () いわけだが、いかにも運用 (うんよう) でカバー」である。これはエレガントじゃない!

エントリーはともかく、インデックスアーカイブの (なか) でそれを (ふせ) ぐためには、テンプレートIDを () () えてやると () い。
つまり、大抵 (たいてい) 場合 (ばあい) 「メイン・ページ」がテンプレートID=1であるから、「メイン・ページ」を別途 (べっと) 新規 (しんき) テンプレートとして保存 (ほぞん) してから、元々 (もともと) 「メイン・ページ」だったテンプレートを「サイドバー」にして保存 (ほぞん) する

こうすると「サイド・バー」がテンプレートID=1となり、インデックス・アーカイブの保存 (ほぞん) () にはまず最初 (さいしょ) に「サイド・バー」が保存 (ほぞん) されるようになる。

IDが1のテンプレート

エントリー保存 (ほぞん) (さい) に、サイドバーを (さき) (さい) 構築 (こうちく) する方法 (ほうほう) については... (なが) くなったので、 (つづ)

( (よう) は、MovableType Background Rebuilder Plugin () () れて、 (さい) 構築 (こうちく) 順番 (じゅんばん) () えたのだ。)

追記 (ついき) : (なん) とか10 (びょう) () った

再構築結果:7秒

カテゴリ


このブログを () いている (ひと)
野田純生の写真
野田 (のだ) 純生 (すみお) (のだ すみお)

大阪 (おおさか) () 出身 (しゅっしん) 。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社 (かぶしきがいしゃ) 代表 (だいひょう) 取締役 (とりしまりやく) 社長 (しゃちょう) であり、現役 (げんえき) のプログラマ。経営 (けいえい) 理念 (りねん) は「テクノロジーによって顧客 (こきゃく) とパートナーに () () い、ウェブを () くする」。 プロフィール詳細 (しょうさい)

Go to original page.