「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
AnotherCustomFieldsはMT標準カスタムフィールドより再構築が速い
AnotherCustomFieldsプラグインは、Movable Type標準のカスタムフィールドよりも、再構築速度が速いです。
両者の再構築速度を比較する実験を行ってみました。
1.AnotherCustomFieldsプラグインの方が速い理由
Movable Type標準のカスタムフィールドは、ブログ記事等のテーブルに直接にフィールドを追加するのではありません。
カスタムフィールド用の別テーブルにデータを保存するようになっています。
また、1つひとつのカスタムフィールドが、テーブルの個々のレコードに対応します。
一方、AnotherCustomFieldsプラグインでは、ブログ記事等のテーブルに直接にフィールドを追加します。
このため、Movable Type標準のカスタムフィールドよりも、AnotherCustomFieldsプラグインの方が、データベースからブログ記事等を読み込む際のデータベースアクセスの回数が少ないです。
また、処理も単純になります。
したがって、AnotherCustomFieldsプラグインの方が、動作原理的に再構築が速くなると予想されます。
2.テスト内容
Movable Type標準のカスタムフィールドと、AnotherCustomFieldsプラグインを比較するために、それぞれで以下のようなテストを行ってみました。
- ブログ記事数は2552件(当ブログの記事をエクスポート)
- 1行テキスト/複数行テキスト/日付のフィールドを各10個(合計30個)追加
- 各ブログ記事の1行テキストおよび日付のフィールドには、ランダムな値を設定
- 複数行テキストのフィールドには、個々のブログ記事の本文や続きの文章を設定
- 「クラシックブログ」テーマを適用
- 「ブログ記事アーカイブ」テンプレートに、各フィールドの値を出力するためのテンプレートタグを追加
- 「カテゴリアーカイブ」および「月別アーカイブ」のテンプレートモジュールをキャッシュするように設定
(これらのテンプレートモジュールは再構築時のオーバーヘッドが大きいので、オーバーヘッドの影響を除去するためにキャッシュ) - mt-config.cgiの「EntriesPerRebuild」の値を200に設定し(デフォルト値は40)、一度に再構築する記事の数を増やして、再構築時のmt.cgiの起動回数を減らす(mt.cgiの起動のオーバーヘッドが大きいので、その影響を少なくする)
- ブログ記事アーカイブのみ再構築
実験の結果は以下のようになりました。
AnotherCustomFieldsプラグインだと、Movable Type標準のカスタムフィールドの約70%の時間で、再構築が終了しました。
テスト項目 | 再構築の所要時間 |
---|---|
Movable Type標準のカスタムフィールド | 4分46秒 |
AnotherCustomFields | 3分22秒 |
また、上記のテストで、テンプレートをデフォルトの状態に戻して、カスタムフィールドの値を出力しないようにすると、再構築は3分14秒で終了しました。
AnotherCustomFieldsプラグインだと、フィールド追加による再構築時間の増加は8秒(約4%増)にすぎません。
一方、Movable Type標準のカスタムフィールドだと、フィールド追加による再構築時間の増加は1分32秒で、約47%も増えています。
このようなことから、AnotherCustomFieldsプラグインは、MTOSだけでなく、商用版Movable Typeと組み合わせてもメリットがあると考えます。
そこで、後日、AnotherCustomFieldsプラグインの商用版Movable Type用のライセンスもご提供したいと思います。
今しばらくお待ちください。