実は再構築にめちゃめちゃ本気な訳。
公開日 : 2007-08-03 21:43:35
実はめちゃくちゃ本気で取り組んでます。
お分かりの方は既にお分かりかとは思うのですが、「本気になれない」と書いたのは実は「めっちゃ本気」の裏返しなわけです。「再構築」でこのブログエントリーの10%強がヒットしますし。
とにかく遅いのは嫌だしストレスも嫌いだから、「高速化」というテーマでも色々書いています。
僕の場合はWeb屋 (企業や団体、公共機関のWebサイトを構築する仕事) が本業なので、例えばPhotoshopが重かったらメモリ増やすとかの対応をとれる立場にあるわけですし、ハードウェアの力にある程度頼っていることは否定しません。ただ、ここで書いたことは全て実行したこと、つまり実体験にも基づいています。今までテンプレートを変更したりエントリーが増えたりして何度も再構築時間が30秒を超えそうになりましたが、都度対策を行い時間を短縮しています (現在は300エントリー強で15秒弱)。
確かに「趣味のブログ」だからコストもあまりかけたくないという面はあると思いますが、エントリーが1,000とか極端な話10,000を超えたりするっていう状況で、しかもレンタルブログサービスでなく自分でMovable Typeを使っているわけですから、そこは再構築の高速化も含めたカスタマイズのプロセスを楽しめないとなぁ、という思いが根底にあります。
話を本題に戻します。
やばいな、と思ったら一旦リセットする。
これまで色々やってきましたが、最も簡単で効果があるのは「ブログを一旦リセットする」ことです。
もちろんブログを辞めて移転して一から始めるという意味ではありません。実際にはもう触ることも無く自分も閲覧する人もほとんどなくなった古いエントリーや日付アーカイブ群を再構築プロセスから切り離すことです。
このブログでは、過去2ヶ月以前のエントリーや日付アーカイブは再構築しないようにしています。もちろんテンプレートやデザインを変更した時には全再構築をかけられる状態にしていますが、普段のエントリーの追加・更新の際には再構築されるファイルは全体の約10%、この2ヶ月以内のエントリーや日付アーカイブのみです。
例えば、「アーカイブ」ページ。通常ならDBのエントリーテーブルにアクセスして、全てのエントリーをループ処理、リストにして表示します。これはすごく無駄の多いことだと思うわけです。最新の1件が先頭に追加されるだけなのに、全てのエントリーのデータにアクセスしてループ処理を回すわけですから。
例えば今年の6月以前のリスト部分は外部ファイル化してモジュール化しています。リストの先頭から6月までの部分だけが毎回再構築されます。
もちろんプラグインの設定一つで強制的に全再構築できるようにしていますから、明示的にすべてを新しくしたい場合は全再構築が可能になっています。
基本的には、以下の2つのプラグインの組み合わせに+このエントリー(Movable TypeでMTIncludeもPHPもSSIも使わずテンプレートをモジュール化する方法。)+このエントリー(Movable Type, 再構築の高速化(<$MTInclude file...$>とBackground Rebuilder Plugin)。)で書いている手法を組み合わせています。
まぁなんかまとまらない話で恐縮ですが、これだけレンタルだったり安価なブログサービスが普及している昨今、わざわざMTインストールしてカスタマイズしてってのが楽しい人は、全再構築30秒切ったぜ! とか15秒切ったぜ! ってなことにも楽しみを見いだせる筈だと思うのです。
たかだかブログですから! 楽しみましょう、色んなプロセスを。ということが実は一番言いたかったりすることです。