計測の仕組み
「更新」「無駄ビルド」「スキップ」の 3 つの状態と、セッションの区切り、計測されない再構築を説明します。
RebuildProfiler は、Movable Type が再構築の途中で呼び出す公式のコールバックを使って計測します。Movable Type 本体のソースコードを書き換えることはありません。
ファイルごとの 3 つの状態
Movable Type は、ファイルをビルドしたあとに、その内容が公開済みのファイルと同じかどうかを比較し、同じであれば書き込みを行いません。RebuildProfiler はこの流れを観測して、ファイルごとに次の 3 つの状態を判別します。
| 状態 | 意味 |
|---|---|
| 更新 | ビルドして、内容が変わったのでファイルに書き込んだ |
| 無駄ビルド | ビルドしたが、内容が公開済みのファイルと同じだったので書き込まれなかった |
| スキップ | 対象にはなったが、他のプラグインなどによってビルド自体が行われなかった |
このうち「無駄ビルド」は、処理時間はかかっているのに結果が何も変わらなかったファイルです。無駄ビルドの多いテンプレートは、再構築の対象から外す、あるいは必要なときだけ再構築する候補になります。
セッションの区切り
1 つのセッションは 1 回のリクエストに対応します。記事を 1 本保存すると 1 セッション、サイト全体の再構築では複数のセッションが記録されます。Movable Type が全体再構築を数十ファイルずつのフェーズに分けて実行するためです。
「種別」の列には、その再構築が始まったきっかけが表示されます。
| 種別 | 意味 |
|---|---|
| 記事の保存 | 記事・ウェブページの保存によって始まった再構築 |
| コンテンツデータの保存 | コンテンツデータの保存によって始まった再構築 |
| 再構築 | 再構築画面から実行された再構築 |
| 再構築(開始)/再構築(次フェーズ)/再構築(選択項目) | 再構築の各段階 |
| その他 | 上記以外のきっかけによる再構築 |
静的アーカイブを持つサイトでは、公開済みの記事を保存したときも、Movable Type が再構築の画面を経由してファイルを公開します。この場合も「記事の保存」として記録されます。
計測されない再構築
計測の対象は、管理画面から実行した再構築だけです。次の再構築は記録されません。
- 公開キュー(
run-periodic-tasks)による再構築 - コマンドラインツールによる再構築
- Data API 経由の再構築
Movable Type が管理画面以外では本プラグインの計測処理を読み込まないためです。レポート画面にもこの旨を表示しています。