毎日記事を足すとビルド時間はどれだけ伸びるか

/ 生成モデル: claude-sonnet-5 / prompt v2 / template v2

記事を 1 本足すたびにサイト全体が作り直される。それでも時間がほとんど伸びない理由を、実測値と流れ図で説明する。測り方も載せた。

この記事で使う言葉

ビルド
書いた原稿から、そのまま配れる形の HTML を作る処理のことです。
中央値
測った値を小さい順に並べたとき、ちょうど真ん中に来る値のことです。
キャッシュ
一度読んだデータを手元に取っておき、次回は読み直さずに使う仕組みです。
CI
変更のたびに自動でビルドや検査を走らせる、常時稼働の仕組みのことです。

原因: 記事を 1 本足すと、サイト全体が作り直される

毎日 1 本ずつ記事を自動で足す運用を考えます。 記事を足すたびに走るのがビルドで、これはサイト全体を作り直す処理です。 足したのは 1 本でも、作り直されるのは全ページです。 だから記事が増えるほど時間が伸びるのでは、と心配になります。

仕組み: 時間の大半は、記事数と関係のない準備に消える

ビルドの時間は、準備と変換の 2 つに分かれます。 準備は道具を読み込む工程で、記事が何本でも毎回ほぼ同じだけかかります。 変換は記事 1 本ずつを HTML にする工程で、こちらは本数に比例します。 今の規模では準備のほうが重く、変換は誤差に近い大きさです。

結果: 本数を気にせず運用できる

実測したビルド時間 (中央値) は 1.24 秒でした。 出来上がった dist の総サイズは 38 KB です。 準備が支配的なので、記事を数十本に増やしても体感はほとんど変わりません。 逆に言えば、速くしたいときに削るべきは記事数ではなく準備のほうです。

実測データの測り方

同じ環境で astro build を 2 回続けて実行し、経過時間の中央値を採りました。 平均ではなく中央値にしたのは、1 回だけ遅い回が混ざっても結果がぶれないからです。

測ったもの 単位 測った日
ビルド時間 (中央値) 1.24 2026-09-14
dist の総サイズ 38 KB 2026-09-14

数字は 1 台のパソコンで測った値なので、そのまま再現する保証はありません。 読み取ってほしいのは絶対値ではなく、記事が増えたときの伸び方のほうです。 2 回目以降はキャッシュが効いて速くなるため、CI のように毎回まっさらな環境で走る場合は初回に近い値になります。

この記事には広告・アフィリエイトリンクを含みません。商品やサービスの提供を受けて執筆したものでもありません。

この記事の下書きは生成 AI が作成し、公開前に運営者が出典と数値を確認しています。

たとえるなら: 毎朝の弁当作り

たとえ話の中の言葉実際に対応するもの
台所に立って道具を出すビルドが道具を読み込む準備
おかずを 1 品詰める記事 1 本を HTML にする
品数を増やす記事の本数を増やす

ここは違う: 弁当は品数を増やすと材料費も増えますが、ビルドは記事を増やしても費用がほとんど変わりません。

記事を 1 本足したときに起きることビルド開始時間の大半記事を 1 本足すMarkdown ファイルが 1 つ増える準備記事数に関係なく毎回かかる記事を HTML にする本数に比例して増えるできた HTML を配る
記事を 1 本足したときに起きること

この記事の計測データ

項目単位計測日計測方法
ビルド時間 (中央値)1.242026-09-14astro build を 2 回実行し、経過時間の中央値を採った。記事 1 本を含む site/ が対象。
dist の総サイズ38KB2026-09-14astro build 完了後の site/dist を再帰的に走査し、ファイルサイズの合計を KB で求めた。記事 1 本ぶん。

出所: 上の値は pipeline/src/measure.mjs が実行時に測った値です。ビルド時間 (中央値): run local-20260913T180131 / commit 916a8ef /2 回計測 / 2026-09-13T18:01:31.917Zdist の総サイズ: run local-20260913T180131 / commit 916a8ef /2 回計測 / 2026-09-13T18:01:31.917Z

読んだあとに試せること

  1. 自分のサイトで astro build を 5 回実行し、中央値を記録する
  2. 記事を 10 本に複製してから測り直し、伸び方を比べる
  3. 画像を 1 枚入れて測り直し、dist の総サイズの変化を見る

参照した一次ソース

  1. Astro Docs: Content collections (取得日 2026-09-14)
  2. Node.js Docs: Performance measurement APIs (取得日 2026-09-14)