根拠ベンチマーク
ページが配信する CSS の一致範囲を調べ、同じ UI の生成 CSS を比較し、制約とともにビルドとランタイムのコストを確認します。
このページの内容
まず、ドキュメントページが配信する CSS のどれだけがページに一致するかと、同じ UI で Master CSS と Tailwind CSS がそれぞれどれだけの CSS を生成するかを測定します。技術付録ではビルド時間、CSS の量に対する Chromium の反応、各 Master CSS レンダリングモードのコストを扱います。他のアプリへ結果を当てはめる前に、各節の条件と制約を確認してください。
スナップショットは2026年11月4日に、同じマシン(Apple M5 Max、macOS)と Chromium 156 で記録しました。Master CSS のパッケージはリビジョン add10eec6 からビルドしています。ブラウザーライフサイクルの記録は同日早い時刻の 3fc239c6c に基づきます。add10eec6 の変更はコンパイラーと静的ビルドのホストで、ランタイム、プリセット、エンジンは変えていません。Master CSS のドキュメントは同じチェックアウトの本番ビルドから測定し、他のサイトは同日の公開ページを取得しました。
| 指標 | 値 | 詳細 |
|---|
| ドキュメントページの CSS | 23.1 / 28.9 kB | Master CSS サイト、Brotli:掲載ページ/5ページの中央値。 |
|---|
| 一致したスタイルルール | 55% | Master CSS サイトの5ページ中央値。7サイト中で最高。 |
|---|
| 同じ UI の生成 CSS | 1.9 / 2.6 kB | Master CSS/Tailwind CSS、docs フィクスチャ、Brotli。 |
|---|
| コールド本番コマンド | 206 / 52 ms | Master CSS/Tailwind CSS、docs フィクスチャ。起動を含む。 |
|---|
| ランタイムのダウンロード量 | 48.7 kB | ランタイム JS 33.3 kB+コンパイル済みプログラム15.4 kB、Brotli。 |
|---|
| プログレッシブの初回読み込み | 2 requests | HTML とランタイム JS。プログラムはクラスが必要とするときだけ読み込む。 |
|---|
| 読み込み後の正しさ | 54 / 54 | 算出スタイルとクリーンアップ検証を通過した操作。 |
|---|
| 長時間セッションのスタイル処理 | 5.0 / 12.2 s | Master CSS ランタイム/Tailwind CSS 静的。各1回、5分間。 |
|---|
主要結果はコミット済みスナップショットから算出しています。以下の各節に、条件と完全なデータを示します。
#ドキュメントページの CSS
検証する問い:各ドキュメントページの初期 HTML から見つかるインライン style とリンク先スタイルシートはどれだけの大きさで、そのうち何個のスタイルルールがページに一致するか。
Raw
Master CSSMaster CSS 0.8 kB + その他のインライン CSS 1.0 kB + 外部 CSS 108.6 kB
Angular1.4× Master CSS
Vue.js1.7× Master CSS
Material UI2.5× Master CSS
Bootstrap2.7× Master CSS
Next.js4.3× Master CSS
Tailwind CSS6.0× Master CSS
Brotli
Master CSSMaster CSS 0.3 kB + その他のインライン CSS 0.2 kB + 外部 CSS 22.6 kB
Angular1.0× Master CSS
Material UI1.2× Master CSS
Bootstrap1.4× Master CSS
Vue.js1.4× Master CSS
Tailwind CSS2.5× Master CSS
Next.js2.7× Master CSS
どちらの表示も、同じ目盛りとリポジトリに保存されたページのスナップショットを使っています。
ドキュメントページのスナップショットに記録された CSS 本文のサイズ. Brotli の値は、それぞれを個別に圧縮したレスポンス本文の合計です。
グラフは各サイトの掲載ページのインライン style とリンク先スタイルシートを合計します。Brotli 表示では各本文を個別に圧縮します。1ページだけではサイトを代表できない場合があるため、表では各サイトに4ページを加えて範囲を示します。
| サイト | 掲載ページ(Brotli) | 5ページの中央値(Brotli) | 5ページの範囲(Brotli) | 5ページの中央値(非圧縮) | 一致したスタイルルール、中央値 | 一致したスタイルルール、範囲 |
|---|
| Angular | 23.3 kB | 23.3 kB | 23.2 kB – 24.5 kB | 151.8 kB | 49% | 43% – 53% |
|---|
| Material UI | 27.1 kB | 27.6 kB | 26.9 kB – 36.2 kB | 292.2 kB | 40% | 38% – 48% |
|---|
| Master CSS | 23.1 kB | 28.9 kB | 23.1 kB – 34.2 kB | 130.6 kB | 55% | 46% – 60% |
|---|
| Bootstrap | 32.6 kB | 32.6 kB | 32.6 kB – 32.6 kB | 293.9 kB | 13% | 11% – 13% |
|---|
| Vue.js | 33.4 kB | 33.4 kB | 33.4 kB – 33.4 kB | 186.3 kB | 26% | 22% – 28% |
|---|
| Tailwind CSS | 58.4 kB | 58.4 kB | 58.4 kB – 58.4 kB | 657.7 kB | 8% | 7% – 9% |
|---|
| Next.js | 61.4 kB | 61.4 kB | 61.4 kB – 61.4 kB | 479.9 kB | 13% | 11% – 14% |
|---|
各サイト5ページを測定します。一致するスタイルルールとは、1280 × 800 のビューポートで読み込んだページの要素にセレクターが一致するルールです。
| 指標 | 値 | 詳細 |
|---|
| ページ数 | 74 | サイトマップにある全ページ |
|---|
| CSS、Brotli | 29.7 kB (23.1 kB – 34.4 kB) | 中央値(最小 – 最大) |
|---|
| CSS、非圧縮 | 133.7 kB (110.4 kB – 156.3 kB) | 中央値(最小 – 最大) |
|---|
| 一致したスタイルルール | 51% (38% – 60%) | 中央値(最小 – 最大) |
|---|
Master CSS サイトのサイトマップにある全ドキュメントページを同じ方法で測定します。
Master CSS のドキュメントは2種類の CSS を使います。ページごとの style#master-css には、そのページが使うユーティリティがあり、掲載ページでは1 kB未満です。リンク先スタイルシートにはサイトのデザインシステムのコンポーネント、プリセットの基盤、それらが参照するトークンがあり、バイトの大部分を占めます。各スタイルシートはコンポーネントに属して全体が届くため、コンポーネントの多いページほどファイルが増え、合計も異なります。閉じた検索ダイアログや記事コンポーネントの一部など、コンポーネントの一部分しか描画しなくても全ルールを受け取ることが、一致しないルールの主な理由です。他のサイトのいくつかは全ページで同じスタイルシートを配信します。
一致したルールは、サイズとは独立に CSS がページへどれだけ適合するかを測ります。状態疑似クラスと疑似要素を除いたセレクターが、読み込み後の要素に一致すれば数えます。他のビューポート、配色、後の操作のルールも、対象要素がない場合だけ不一致となります。割合は各サイト自身のスタイルシートの性質であり、CSS フレームワークだけの性質ではありません。
制約:収集した CSS 本文のサイズであり、ブラウザーの転送量や時間ではありません。収集ツールは CSS import グラフをたどらず、JavaScript が挿入するスタイルも数えません。レスポンス全体の圧縮、キャッシュ再利用、ヘッダー、CDN、フォント、画像、アプリのランタイム処理は対象外です。各サイトの設計とビルドの判断も反映されるので、CSS フレームワークのコストだけを分離したサンプルではありません。同じ UI でのフレームワーク比較は下の静的フィクスチャで行います。
#同じ UI の生成 CSS
検証する問い:等価な静的 Master CSS と Tailwind CSS v4 のフィクスチャで、生成 CSS のバイト数、ファイル、CSS AST 構造はどう異なるか。
まとめたスナップショットは css-output-size、build-performance、css-structure の結果を統合しています。最初は静的アーティファクト出力に集中できるよう、主要グラフに docs フィクスチャの CLI 版を使います。本番コマンドの時間は技術付録にあります。
| 指標 | 値 | 詳細 |
|---|
| フィクスチャ数 | 4 | |
|---|
| CSS 出力 | 4/4 良好 | CLI 構成で Master CSS の brotli バイトが Tailwind CSS より少ないフィクスチャ |
|---|
| ビルドコマンド | 4/4 要確認 | CLI 構成で Tailwind CSS のコールド本番コマンド中央値が低いフィクスチャ |
|---|
| ビルドのサンプル数 | 5 | 各バリアントで測定したコマンド回数 |
|---|
| CSS 構造 | AST | ルール、セレクター、宣言、レイヤー、アットルール、セレクタースコアは生成 CSS から解析 |
|---|
測定した全フィクスチャの静的比較をまとめたスナップショット。
#代表的なフィクスチャ
docs フィクスチャは、ナビゲーション、コードブロック、表を持つ情報量の多い記事・ドキュメントレイアウトを表します。
Master CSSサイズは1/1.4
CLI 構成の docs フィクスチャの Brotli 圧縮 CSS 出力。
CSS AST の解析で取得した docs フィクスチャの生成宣言数。
#完全なデータ
完全な表には、測定した全フィクスチャと CLI/Vite 両構成を残しています。
| フィクスチャ | バリアント | 非圧縮 | Gzip | Brotli | ファイル数 |
|---|
| Minimal | Master CSS static CLI | 5.6 kB | 2.0 kB | 1.7 kB | 1 |
|---|
| Minimal | Master CSS static Vite | 5.6 kB | 2.0 kB | 1.7 kB | 1 |
|---|
| Minimal | Tailwind CSS CLI | 9.3 kB | 2.7 kB | 2.3 kB | 1 |
|---|
| Minimal | Tailwind CSS Vite | 7.9 kB | 2.5 kB | 2.1 kB | 1 |
|---|
| Docs | Master CSS static CLI | 6.4 kB | 2.3 kB | 1.9 kB | 1 |
|---|
| Docs | Master CSS static Vite | 6.4 kB | 2.3 kB | 1.9 kB | 1 |
|---|
| Docs | Tailwind CSS CLI | 12.2 kB | 3.1 kB | 2.6 kB | 1 |
|---|
| Docs | Tailwind CSS Vite | 10.2 kB | 2.9 kB | 2.5 kB | 1 |
|---|
| Dashboard | Master CSS static CLI | 6.7 kB | 2.3 kB | 1.9 kB | 1 |
|---|
| Dashboard | Master CSS static Vite | 6.7 kB | 2.3 kB | 1.9 kB | 1 |
|---|
| Dashboard | Tailwind CSS CLI | 10.7 kB | 2.9 kB | 2.4 kB | 1 |
|---|
| Dashboard | Tailwind CSS Vite | 8.9 kB | 2.7 kB | 2.3 kB | 1 |
|---|
| Stress CSS | Master CSS static CLI | 12.6 kB | 3.1 kB | 2.0 kB | 1 |
|---|
| Stress CSS | Master CSS static Vite | 12.6 kB | 3.1 kB | 2.1 kB | 1 |
|---|
| Stress CSS | Tailwind CSS CLI | 17.3 kB | 3.7 kB | 2.6 kB | 1 |
|---|
| Stress CSS | Tailwind CSS Vite | 12.9 kB | 3.5 kB | 2.4 kB | 1 |
|---|
全フィクスチャ・構成の、生、gzip、brotli の CSS バイト数と CSS ファイル数。
| フィクスチャ | バリアント | ルール数 | セレクター数 | 宣言数 | カスタムプロパティ数 | アットルール数 | レイヤーブロック数 | レイヤー外のルール数 | 結合子数 | 最大詳細度 | 最大複雑度 |
|---|
| Minimal | Master CSS static CLI | 86 | 138 | 134 | 21 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Minimal | Master CSS static Vite | 86 | 138 | 134 | 21 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Minimal | Tailwind CSS CLI | 86 | 131 | 174 | 41 | 13 | 4 | 1 | 3 | 10 | 9 |
|---|
| Minimal | Tailwind CSS Vite | 99 | 132 | 199 | 41 | 12 | 4 | 1 | 3 | 10 | 9 |
|---|
| Docs | Master CSS static CLI | 102 | 154 | 153 | 24 | 7 | 4 | 1 | 0 | 20 | 2 |
|---|
| Docs | Master CSS static Vite | 102 | 154 | 153 | 24 | 7 | 4 | 1 | 0 | 20 | 2 |
|---|
| Docs | Tailwind CSS CLI | 102 | 147 | 226 | 56 | 24 | 4 | 1 | 3 | 10 | 9 |
|---|
| Docs | Tailwind CSS Vite | 116 | 149 | 251 | 56 | 23 | 4 | 1 | 3 | 10 | 9 |
|---|
| Dashboard | Master CSS static CLI | 108 | 160 | 161 | 27 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Dashboard | Master CSS static Vite | 108 | 160 | 161 | 27 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Dashboard | Tailwind CSS CLI | 105 | 150 | 195 | 42 | 13 | 4 | 1 | 3 | 20 | 9 |
|---|
| Dashboard | Tailwind CSS Vite | 118 | 151 | 220 | 42 | 12 | 4 | 1 | 3 | 20 | 9 |
|---|
| Stress CSS | Master CSS static CLI | 301 | 353 | 352 | 25 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Stress CSS | Master CSS static Vite | 301 | 353 | 352 | 25 | 6 | 4 | 1 | 0 | 20 | 2 |
|---|
| Stress CSS | Tailwind CSS CLI | 300 | 345 | 369 | 28 | 11 | 4 | 1 | 3 | 10 | 9 |
|---|
| Stress CSS | Tailwind CSS Vite | 312 | 346 | 393 | 28 | 10 | 4 | 1 | 3 | 10 | 9 |
|---|
生成 CSS から解析したルール、セレクター、宣言、at-rule、レイヤー、セレクター形状のデータ。
解釈:ブラウザーコストを論じる前に、CSS 構造の指標がバイト数の差を説明します。Tailwind CSS と Master CSS のフィクスチャは、同じクラス文字列ではなく等価な描画 UI を目指しています。
測定したすべての構成は CSS を1ファイル出力します。Master CSS の静的ビルドは、プリセットを含めエントリーが import するスタイルシートをインライン化するため、Tailwind CSS と同様に1リクエストで生成 CSS が届きます。外部 import、名前空間、あるいは自身に import を持つファイルへの条件付き import を保持するスタイルシートは別ファイルのままですが、今回のフィクスチャにその例はありません。
制約:ブラウザーの解析、スタイル再計算、レイアウト、描画、操作コスト、watch モード、HMR は測っていません。フィクスチャはユーティリティクラスだけを使います。記述したコンポーネント CSS の追加量は、ページ CSSのサンプルで確認できます。
#7月のスナップショットからの変化
前回の2026年7月1日のスナップショット以降、エンジンは Rust へ移り、クラス構文も変わりました。コード変更の影響をマシン、ブラウザー、測定ハーネスから分けるため、7月のリビジョン cd5a3972a を再ビルドし、その版自身のランナーを現在と同じマシン・Chromium ビルドで再実行しました。マシンのバックグラウンド負荷が両方へ同様に影響するよう、本番ビルドを2つのチェックアウトで3回交互に実行しました。
再実行では7月の静的 CSS 出力をバイト単位で再現できたため、以前の数値はそのリビジョンでは有効でした。現在のフィクスチャは現行のクラス構文で同じ描画値を表し、すべてのクラスが CSS を生成して CLI の --strict を通過します。
| 測定項目 | 領域 | 2026年7月2日 | 2026年11月4日 | 変化 |
|---|
| Master CSS CLI CSS (Brotli) | Static CSS output | 1.8 kB | 1.9 kB | +5% |
|---|
| Master CSS CLI CSS files | Static CSS output | 1 | 1 | Same |
|---|
| Master CSS Vite CSS files | Static CSS output | 1 | 1 | Same |
|---|
| Tailwind CSS CLI CSS (Brotli, control) | Static CSS output | 2.6 kB | 2.6 kB | +2% |
|---|
| Master CSS CLI cold build | Production build | 155.8 ms | 274.2 ms | +76% |
|---|
| Master CSS Vite cold build | Production build | 230.9 ms | 340.1 ms | +47% |
|---|
| Tailwind CSS CLI cold build (control) | Production build | 88.2 ms | 77.0 ms | −13% |
|---|
| Tailwind CSS Vite cold build (control) | Production build | 150.8 ms | 129.2 ms | −14% |
|---|
| Runtime JS (Brotli) | Runtime delivery | 22.8 kB | 33.3 kB | +46% |
|---|
| Runtime default data (Brotli) | Runtime delivery | 9.8 kB | 15.4 kB | +57% |
|---|
| Runtime bootstrap | Runtime delivery | 10.3 ms | 8.7 ms | −16% |
|---|
| Runtime observe | Runtime delivery | 4.7 ms | 4.5 ms | −4% |
|---|
| Runtime navigation ready | Runtime delivery | 40.8 ms | 39.2 ms | −4% |
|---|
| Progressive requests on load | Progressive delivery | 3 | 2 | −33% |
|---|
| Progressive hydration data (Brotli) | Progressive delivery | 1.6 kB | 464 B | 0.3× |
|---|
| Progressive bootstrap | Progressive delivery | 13.2 ms | 5.4 ms | 0.4× |
|---|
| Progressive observe and hydrate | Progressive delivery | 2.1 ms | 0.3 ms | 0.1× |
|---|
| Progressive navigation ready | Progressive delivery | 40.4 ms | 39.0 ms | −3% |
|---|
| Tailwind CSS static navigation ready (control) | Progressive delivery | 23.9 ms | 25.8 ms | +8% |
|---|
| Runtime first-time class: mutation work | Interaction | 0.3 ms | 0.5 ms | +67% |
|---|
| Progressive first-time class: mutation work | Interaction | 0.6 ms | 0.3 ms | 0.5× |
|---|
| Tailwind CSS existing-class toggle ready (control) | Interaction | 46.6 ms | 61.0 ms | +31% |
|---|
同じマシン・Chromium ビルドで各リビジョン自身のランナーが得た中央値です。本番ビルドは両方で同じ Node.js を使い、各中央値は3回の交互実行に含まれる15コマンドをまとめています。
このマシンでは現行版のブラウザーランタイム起動が速く、少ないデータでプログレッシブページをハイドレーションします。一方、ランタイムのダウンロード量は増え、コールドな本番コマンドは長くなります。docs の生成 CSS は約5%増え、7月と同様に1ファイルで届きます。各チェックアウトは独自の Tailwind CSS と Vite を入れるため、Tailwind CSS の対照結果はアップグレードと実行間のノイズも反映します。
両リビジョンとも Tailwind CSS を含む各モードの操作準備時間はほぼ同じです。Master CSS の処理ではなくハーネスのフレーム待ちで制約されるため、値は約1フレーム(17 ms)刻みで動きます。7月版で低い Tailwind CSS の値も、その1刻みです。
#技術付録
ここでは本番コマンド、CSS の量に対する Chromium の反応、各 Master CSS モードがブラウザーへ送り実行する内容など、上の結果の背後にあるコストを説明します。モードの選択やビルド時間の診断時に参照してください。
#中心となる仮説
配信上の問いは、少ない CSS ルールを読み込むことで省けるブラウザーの処理が、ランタイム生成のコストを相殺できるかです。初期読み込み、後の操作、長時間セッションのクリーンアップまで、ページのライフサイクル全体を比較します。
ランタイムとプログレッシブのレンダリングは、観測したクラスからルールを生成する JavaScript 処理を加えます。クラス集合が静的ソース由来の集合より小さければ、初期 CSS と CSSOM のルール量を減らせます。その削減が起動や変更処理を相殺するかは負荷次第です。Tailwind CSS は、ランタイムのない静的 CSS 対照として有用です。等価なランタイム実装はありませんが、大きな静的 CSS 側のトレードオフを表せます。
現在の証拠は方向性として読むべきです。測定したフィクスチャで、ランタイム/プログレッシブが CSSOM・ルール量やスタイル再計算を十分に減らし、起動、監視、変更処理を相殺できれば仮説を支持します。すべてのアプリが速くなるという証明ではありません。
これらのスイートは、セレクター照合を安定した Chromium 指標として直接測っていません。配信セレクター、CSSOM ルール数、ランタイム生成ルール数、トレース由来のスタイル再計算から推測しています。
#結果の読み方
ベンチマークは限定した問いに答えるときに役立ちます。配信のトレードオフを評価する際は、次の順で測定結果を読みます。
- ページ CSS と静的 CSS 出力で、ページや静的構成が配信するバイト、ファイル、セレクター、宣言、ルールの数を確認します。
- ブラウザー CSS コストで、DOM を固定し CSS ルール量を増やしたときの Chromium の反応を校正します。
- 配信モードで Master の静的、ランタイム、プログレッシブと Tailwind 静的が初回読み込みで送信・実行する内容を確認します。
- 操作コストで、ランタイムのルール処理を含む、読み込み後の DOM とクラス変更を測定します。
- ブラウザーライフサイクルの証拠で、長時間セッションの処理、CSSOM・ルール量、ランタイムの計測を組み合わせます。
各グラフを測定したフィクスチャとコマンドの証拠として読み、他のアプリへ適用する前に完全な表とコミット済みスナップショットを照合してください。
| 問い | 主な証拠 |
|---|
| 各ドキュメントページで見つかる CSS 本文の大きさと使用量はどれだけか | ページ CSS サイズのスナップショット |
| 同じ UI の生成静的 CSS はどれだけ大きいか | 静的 CSS 出力と CSS 構造のスナップショット |
| 本番コマンドにどれだけ時間がかかるか | 本番ビルド |
| Master CSS のビルド時間はどこに使われるか | ビルド経路の診断 |
| CSS ルール量の Chromium コストは何か | ブラウザー CSS コストの校正 |
| 各モードは初回読み込みで何を送り実行するか | Master CSS 配信モード |
| 読み込み後のクラス・DOM 変更で何が起きるか | 操作コスト |
| ランタイム処理は長時間セッションのコストを変えるか | ブラウザーライフサイクルの証拠 |
| リビジョン間で何が変わったか | リビジョン比較 |
Tailwind CSS は等価なランタイムの比較対象ではありません。ランタイム向けスイートでは、仮説のうちランタイムなし・大きな静的 CSS 側を表す、静的なブラウザー対照です。
数値が小さければ常に良いわけではありません。CSS アーティファクトの縮小はランタイムへの処理移動かもしれず、速いコールドコマンドは有用な出力の少なさを隠すかもしれません。ローカル Chromium のトレースは実際の本番テレメトリーの代わりにもなりません。
時間とともに正しさも確認します。フィクスチャが意図した UI を描画してこそ、小ささや速さに意味があります。スイートが記録している場合は、表に算出スタイルとプログレッシブの採用確認を含めます。
#本番ビルド
検証する問い:各静的フィクスチャ・構成で、コールドまたは反復の本番コマンド全体にどれだけかかるか。
Tailwind CSS3.9倍高速
CLI 構成の docs フィクスチャのコールド本番コマンド中央値。
| フィクスチャ | バリアント | コールド中央値 | 反復の中央値 | サンプル数 |
|---|
| Minimal | Master CSS static CLI | 209 ms | 204 ms | 5 |
|---|
| Minimal | Master CSS static Vite | 269 ms | 254 ms | 5 |
|---|
| Minimal | Tailwind CSS CLI | 50.7 ms | 47.3 ms | 5 |
|---|
| Minimal | Tailwind CSS Vite | 97.5 ms | 91.9 ms | 5 |
|---|
| Docs | Master CSS static CLI | 206 ms | 203 ms | 5 |
|---|
| Docs | Master CSS static Vite | 269 ms | 258 ms | 5 |
|---|
| Docs | Tailwind CSS CLI | 52.3 ms | 49.3 ms | 5 |
|---|
| Docs | Tailwind CSS Vite | 101 ms | 91.1 ms | 5 |
|---|
| Dashboard | Master CSS static CLI | 213 ms | 209 ms | 5 |
|---|
| Dashboard | Master CSS static Vite | 307 ms | 263 ms | 5 |
|---|
| Dashboard | Tailwind CSS CLI | 56.1 ms | 51.6 ms | 5 |
|---|
| Dashboard | Tailwind CSS Vite | 110 ms | 96.6 ms | 5 |
|---|
| Stress CSS | Master CSS static CLI | 235 ms | 216 ms | 5 |
|---|
| Stress CSS | Master CSS static Vite | 287 ms | 276 ms | 5 |
|---|
| Stress CSS | Tailwind CSS CLI | 52.8 ms | 50.5 ms | 5 |
|---|
| Stress CSS | Tailwind CSS Vite | 105 ms | 98.8 ms | 5 |
|---|
全フィクスチャ・構成のコールドと反復の本番コマンド時間。
解釈:各コマンド経路の時間にはプロセス、CLI または Vite、パッケージの起動が含まれるため、小さいフィクスチャでは主に固定起動コストを測ります。反復の本番ビルドは同じワークスペースでの2回目のコマンドで、watch や HMR ではありません。
#ビルド経路の診断
検証する問い:Master CSS の起動、インテグレーション、抽出、コンパイラーのどの下位処理がコマンド全体のコストを説明するか。
startup-diagnostics、build-diagnostics、compiler-diagnostics、extraction-diagnostics を統合したスナップショットです。Master CSS のビルド経路を説明するもので、フレームワーク間の本番ベンチマークではありません。
| 指標 | 値 | 詳細 |
|---|
| フィクスチャ数 | 4 | minimal、docs、dashboard、stress-css の診断フィクスチャ |
|---|
| ソースレポート | 4 | 起動、ビルド、コンパイラー、抽出の診断 |
|---|
| 環境 | Apple M5 Max, v26.3.0 | darwin 27.0.0 arm64、18 CPU |
|---|
| CLI コマンドと抽出の比較 | 216.5 ms / 52.2 ms | `docs` フィクスチャのコマンド全体の測定範囲と CLI CSS 抽出の比較 |
|---|
| Vite 追加コストとスキャナー初期化の比較 | 194.7 ms / 6.06 ms 要確認 | `docs` フィクスチャの Master Vite コマンド追加コストとスキャナー初期化の比較 |
|---|
| 登録と合成 | 47.3 ms / 53.4 ms | `docs` フィクスチャのスタイルシートエントリー登録と公開 API による初回全体合成の比較 |
|---|
Master CSS のビルド経路診断をまとめたスナップショット。
CLI 経路
docs フィクスチャの中央値スキャナー インポート プローブ3サンプル
Vite 経路
docs フィクスチャの中央値Master Vite コマンドの追加コスト3サンプル
@master/css-vite インポート プローブ3サンプル
Vite コアモジュール インポート プローブ3サンプル
Vite スキャナー初期化3サンプル
Vite バンドルの CSS 抽出3サンプル
スタイルシートのパイプライン
docs フィクスチャの、個別の公開 API 操作の中央値ネイティブ CSS なしの合成3サンプル
docs フィクスチャの診断中央値。起動プローブは方向性を示すもので、足し合わせられるフレームグラフではありません。
| フィクスチャ | CLI コマンド | CLI 抽出 | Vite の追加コスト | Vite インポート | Vite スキャナー | 登録 | 初回合成 | パイプライン合計 | 最終 CSS |
|---|
| Minimal | 227.1 ms | 54 ms | 211.9 ms | 28.3 ms | 6.46 ms | 48.5 ms | 53.4 ms | 217.2 ms | 5.6 kB |
|---|
| Docs | 216.5 ms | 52.2 ms | 194.7 ms | 27.1 ms | 6.06 ms | 47.3 ms | 53.4 ms | 218.9 ms | 6.4 kB |
|---|
| Dashboard | 211.1 ms | 55.9 ms | 204.5 ms | 26.5 ms | 6 ms | 47.3 ms | 56.1 ms | 230 ms | 6.7 kB |
|---|
| Stress CSS | 220.8 ms | 61 ms | 206.3 ms | 26.7 ms | 6.02 ms | 47.4 ms | 68.6 ms | 263.1 ms | 12.6 kB |
|---|
測定した全フィクスチャの完全なビルド経路診断データ。
解釈:通常のフィクスチャのコマンドでは、モジュール import とソーススキャンは数ミリ秒です。スタイルシートエントリーの登録と出力の合成はそれぞれ数十ミリ秒で、同じ構成で再合成しても初回の約5分の3がかかります。1回の CLI 実行の CPU プロファイル(node --cpu-prof)では、コマンドの最大部分、約3分の1が、import したプリセットのスタイルシートグラフのコンパイルに割り当てられます。これはフィクスチャのクラスに依存せず、小さな例も大きな例とほぼ同じ固定費を負担します。
制約:診断プローブは別々の範囲や下位処理を測定します。1つの本番トレースのように時間を足し合わせないでください。
#ブラウザーの CSS コスト
検証する問い:DOM を固定した場合、CSS ルール量は Chromium のスタイル再計算、レイアウト、描画へどう影響するか。CSS を固定して DOM を増やすとどうなるか。
ローカルのフィクスチャ、決定的な外部 CSS、Playwright、Chromium トレースを使います。ブラウザーだけの校正スイートであり、Master CSS と Tailwind CSS の比較ではありません。
| 指標 | 値 | 詳細 |
|---|
| CSS の規模条件 | 4 | 可視 DOM を固定し、決定的な外部 CSS を増やす |
|---|
| 最大 CSS 規模 | 45.6 kB | ウォームキャッシュの xlarge-css バリアントで90,042宣言 |
|---|
| DOM の対照条件 | 3 | CSS を固定し、繰り返す DOM 項目を増やす |
|---|
| 最大 DOM 規模 | 21,012 | ウォームキャッシュの large-dom バリアントの実測 DOM ノード |
|---|
| ブラウザー | Chromium 156.0.8078.4 | コミット済みトレースに使ったヘッドレスブラウザー |
|---|
| トレースのサンプル数 | 3 | 各ウォームキャッシュ条件のブラウザー測定回数 |
|---|
ブラウザー CSS コストをまとめたスナップショット。
スタイル再計算
ウォームキャッシュの中央値小規模 CSS1.6 kB、792宣言
中規模 CSS5.4 kB、7,542宣言
大規模 CSS16.4 kB、30,042宣言
特大規模 CSS45.6 kB、90,042宣言
レイアウト
ウォームキャッシュの中央値小規模 CSS1.6 kB、792宣言
中規模 CSS5.4 kB、7,542宣言
大規模 CSS16.4 kB、30,042宣言
特大規模 CSS45.6 kB、90,042宣言
描画
ウォームキャッシュの中央値小規模 CSS1.6 kB、792宣言
中規模 CSS5.4 kB、7,542宣言
大規模 CSS16.4 kB、30,042宣言
特大規模 CSS45.6 kB、90,042宣言
CSS ルール量を増やし、可視 DOM を固定したウォームキャッシュのトレース中央値。
DOM を増やし、CSS を固定したウォームキャッシュのトレース中央値。
| 軸 | バリアント | キャッシュ | CSS brotli | ルール数 | 宣言数 | DOM ノード数 | スタイル再計算 | レイアウト | 描画 | サンプル数 |
|---|
| CSS volume | Small CSS | Cold cache | 1.6 kB | 263 | 792 | 205 | 0.6 ms | 3.8 ms | 0.9 ms | 3 |
|---|
| CSS volume | Small CSS | Warm cache | 1.6 kB | 263 | 792 | 205 | 0.4 ms | 0.7 ms | 0.6 ms | 3 |
|---|
| CSS volume | Medium CSS | Cold cache | 5.4 kB | 2,513 | 7,542 | 205 | 1 ms | 4.4 ms | 1.1 ms | 3 |
|---|
| CSS volume | Medium CSS | Warm cache | 5.4 kB | 2,513 | 7,542 | 205 | 0.4 ms | 0.8 ms | 0.6 ms | 3 |
|---|
| CSS volume | Large CSS | Cold cache | 16.4 kB | 10,013 | 30,042 | 205 | 1.7 ms | 3.9 ms | 0.9 ms | 3 |
|---|
| CSS volume | Large CSS | Warm cache | 16.4 kB | 10,013 | 30,042 | 205 | 0.4 ms | 0.7 ms | 0.5 ms | 3 |
|---|
| CSS volume | XLarge CSS | Cold cache | 45.6 kB | 30,013 | 90,042 | 205 | 3.7 ms | 3.9 ms | 0.8 ms | 3 |
|---|
| CSS volume | XLarge CSS | Warm cache | 45.6 kB | 30,013 | 90,042 | 205 | 0.4 ms | 0.8 ms | 0.6 ms | 3 |
|---|
| DOM scaling | Small DOM | Cold cache | 0.5 kB | 15 | 50 | 712 | 1 ms | 4.7 ms | 1.7 ms | 3 |
|---|
| DOM scaling | Small DOM | Warm cache | 0.5 kB | 15 | 50 | 712 | 0.9 ms | 1.6 ms | 1.4 ms | 3 |
|---|
| DOM scaling | Medium DOM | Cold cache | 0.5 kB | 15 | 50 | 7,012 | 6.4 ms | 19.9 ms | 4 ms | 3 |
|---|
| DOM scaling | Medium DOM | Warm cache | 0.5 kB | 15 | 50 | 7,012 | 6.2 ms | 15.7 ms | 4.6 ms | 3 |
|---|
| DOM scaling | Large DOM | Cold cache | 0.5 kB | 15 | 50 | 21,012 | 18.1 ms | 51.7 ms | 8.7 ms | 3 |
|---|
| DOM scaling | Large DOM | Warm cache | 0.5 kB | 15 | 50 | 21,012 | 17.7 ms | 55.4 ms | 10.6 ms | 3 |
|---|
CSS 量と DOM 拡大の各条件の完全なブラウザー CSS コストデータ。
解釈:CSS 量の曲線は、各配信モードが操作前に Chromium へ読み込ませる CSS の量を判断する主な材料です。DOM 拡大の対照は、DOM、スタイル、レイアウトの拡大を CSS ペイロードのサイズから分離する助けになります。
制約:ランタイムのルール生成、実アプリの JavaScript、Firefox、WebKit、CDN、公開実ページのばらつきは測定していません。Chromium のトレースイベント名はブラウザーの版によって変わる場合があります。
#Master CSS の配信モード
検証する問い:各配信モードの初期ペイロード、ローカル Chromium の読み込みコスト、ランタイムの起動コスト、プログラム読み込み、プログレッシブの採用動作はどうなるか。
静的フィクスチャ全体で、Master CSS の静的、ランタイム、プログレッシブと、Tailwind CSS 静的のブラウザー対照を比較します。
| 指標 | 値 | 詳細 |
|---|
| フィクスチャ数 | 4 | 全配信モードで測定した静的フィクスチャ集合 |
|---|
| モード数 | 4 | Master 静的、ランタイム、プログレッシブ、Tailwind 静的 |
|---|
| ブラウザー | Chromium 156.0.8078.4 | ローカルのトレース測定に使ったヘッドレスブラウザー |
|---|
| トレースのサンプル数 | 3 | 各バリアントのブラウザー測定回数 |
|---|
| プログレッシブの CSS 採用 | 4/4 良好 | プログレッシブランタイムがサーバー描画 CSS を採用したフィクスチャ |
|---|
Master CSS の配信モードをまとめたスナップショット。
代表的なフィクスチャ
主要グラフは docs フィクスチャを示します。
ペイロードのグラフは、完全な HTML レスポンスと初回読み込みで要求した各外部アセットを1回ずつ数えます。インライン CSS と挿入した hydration マニフェストは HTML 内にあるため、別区分ではありません。空のアセット欄は圧縮コンテナーのバイトを合計へ加えません。
Master CSS 静的2リクエスト
Master CSS ランタイム3リクエスト
- HTML2.2 kB
- ランタイム JS33.3 kB
- ランタイムプログラム15.4 kB
Master CSS プログレッシブ2リクエスト
- HTML3.5 kB
- ランタイム JS33.3 kB
Tailwind CSS 静的2リクエスト
docs フィクスチャで記録したレスポンスアセットを個別に Brotli 圧縮しています。すべてのバーはゼロから最大合計までの共通スケールで、各区分がアセットの寄与を示します。
合計は記録したアセット欄からの推定で、実測ネットワーク転送量ではありません。ヘッダーと転送オーバーヘッドを含まず、各ページの HTML には測定ハーネスのスクリプトもあります。詳細表は、個別に圧縮したインライン CSS と hydration 断片を診断用に残しています。これらをレスポンス合計へ足すと二重計上になります。
移動から準備完了まで
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
Tailwind CSS 静的3サンプル
スタイル再計算
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
レイアウト
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
Tailwind CSS 静的3サンプル
描画
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
Tailwind CSS 静的3サンプル
docs フィクスチャのローカル Chromium 読み込み時間の中央値。
ランタイム起動
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
ランタイム監視
中央値Master CSS ランタイム3サンプル
Master CSS プログレッシブ3サンプル
Master のランタイム・プログレッシブモードの、ランタイム起動と監視の中央値。
| フィクスチャ | モード | レスポンスアセット | HTML | 外部 CSS | インライン CSS(HTML 内) | ランタイム JS | ランタイムプログラム | ハイドレーション(HTML 内) | ルール数 | 宣言数 | ナビゲーション準備完了 | スタイル再計算 | レイアウト | 描画 | ランタイム起動 | ランタイム監視 | プログレッシブ CSS 採用済み |
|---|
| Minimal | Master CSS static | 3.1 kB | 1.4 kB | 1.7 kB | 0 kB | 0 kB | 0 kB | 0 kB | 86 | 134 | 24.6 ms | 0.8 ms | 5.4 ms | 0.8 ms | 0 ms | 0 ms | 0 |
|---|
| Minimal | Master CSS runtime | 50.4 kB | 1.7 kB | 0 kB | 0 kB | 33.3 kB | 15.4 kB | 0 kB | 0 | 0 | 39.6 ms | 0.6 ms | 3 ms | 0.4 ms | 8.9 ms | 4.2 ms | 0 |
|---|
| Minimal | Master CSS progressive | 36 kB | 2.7 kB | 0 kB | 0.8 kB | 33.3 kB | 0 kB | 0.4 kB | 49 | 67 | 39.8 ms | 0.5 ms | 2.8 ms | 0.4 ms | 4.2 ms | 0.3 ms | 1 |
|---|
| Minimal | Tailwind CSS static | 3.7 kB | 1.4 kB | 2.3 kB | 0 kB | 0 kB | 0 kB | 0 kB | 86 | 174 | 23.1 ms | 0.7 ms | 4.6 ms | 0.6 ms | 0 ms | 0 ms | 0 |
|---|
| Docs | Master CSS static | 3.9 kB | 2 kB | 1.9 kB | 0 kB | 0 kB | 0 kB | 0 kB | 102 | 153 | 25 ms | 0.9 ms | 6.9 ms | 1.3 ms | 0 ms | 0 ms | 0 |
|---|
| Docs | Master CSS runtime | 50.9 kB | 2.2 kB | 0 kB | 0 kB | 33.3 kB | 15.4 kB | 0 kB | 0 | 0 | 39.2 ms | 0.7 ms | 3.7 ms | 0.7 ms | 8.7 ms | 4.5 ms | 0 |
|---|
| Docs | Master CSS progressive | 36.7 kB | 3.5 kB | 0 kB | 1 kB | 33.3 kB | 0 kB | 0.5 kB | 65 | 86 | 39 ms | 0.6 ms | 3.6 ms | 0.7 ms | 5.4 ms | 0.3 ms | 1 |
|---|
| Docs | Tailwind CSS static | 4.5 kB | 1.9 kB | 2.6 kB | 0 kB | 0 kB | 0 kB | 0 kB | 102 | 226 | 25.8 ms | 1 ms | 7.7 ms | 1.2 ms | 0 ms | 0 ms | 0 |
|---|
| Dashboard | Master CSS static | 3.8 kB | 1.9 kB | 1.9 kB | 0 kB | 0 kB | 0 kB | 0 kB | 108 | 161 | 23.7 ms | 8 ms | 2.7 ms | 1.4 ms | 0 ms | 0 ms | 0 |
|---|
| Dashboard | Master CSS runtime | 50.9 kB | 2.2 kB | 0 kB | 0 kB | 33.3 kB | 15.4 kB | 0 kB | 0 | 0 | 40.7 ms | 5.8 ms | 2 ms | 0.9 ms | 9.1 ms | 4.6 ms | 0 |
|---|
| Dashboard | Master CSS progressive | 36.7 kB | 3.4 kB | 0 kB | 1 kB | 33.3 kB | 0 kB | 0.5 kB | 71 | 94 | 42.4 ms | 5.4 ms | 1.8 ms | 0.8 ms | 6.2 ms | 0.4 ms | 1 |
|---|
| Dashboard | Tailwind CSS static | 4.3 kB | 1.9 kB | 2.4 kB | 0 kB | 0 kB | 0 kB | 0 kB | 105 | 195 | 23.1 ms | 9 ms | 2.7 ms | 1.2 ms | 0 ms | 0 ms | 0 |
|---|
| Stress CSS | Master CSS static | 4.3 kB | 2.2 kB | 2 kB | 0 kB | 0 kB | 0 kB | 0 kB | 301 | 352 | 24.1 ms | 1.3 ms | 5.9 ms | 1.1 ms | 0 ms | 0 ms | 0 |
|---|
| Stress CSS | Master CSS runtime | 51.2 kB | 2.5 kB | 0 kB | 0 kB | 33.3 kB | 15.4 kB | 0 kB | 0 | 0 | 39.4 ms | 1.1 ms | 3.6 ms | 0.6 ms | 12.6 ms | 7.9 ms | 0 |
|---|
| Stress CSS | Master CSS progressive | 37.4 kB | 4.1 kB | 0 kB | 1.1 kB | 33.3 kB | 0 kB | 0.5 kB | 264 | 285 | 39.3 ms | 1 ms | 3.6 ms | 0.7 ms | 6.1 ms | 0.7 ms | 1 |
|---|
| Stress CSS | Tailwind CSS static | 4.8 kB | 2.3 kB | 2.6 kB | 0 kB | 0 kB | 0 kB | 0 kB | 300 | 369 | 23.3 ms | 1.9 ms | 5.8 ms | 1 ms | 0 ms | 0 ms | 0 |
|---|
測定した全フィクスチャ・モードの完全な配信モードデータ。
解釈:ランタイムモードは生成 CSS を配信しませんが、ページにスタイルを付ける前にブラウザーランタイムとコンパイル済み既定プログラムを取得します。プログレッシブは HTML 内のサーバー/ビルド時 CSS から始まり、ランタイムが採用します。hydration データにないクラスが現れたときだけプログラムを取得しますが、今回の初期読み込みでは起きませんでした。
制約:ローカルフィクスチャの初期読み込みだけを測定しています。読み込み後の変更は操作スイートで扱います。Master 静的と Tailwind 静的は、同じクラス文字列でなく等価なフィクスチャ意図で作った CLI 生成スタイルシートを1つずつ読み込みます。ランタイムとプログレッシブのページは自己完結したグローバル runtime バンドルを読み込みます。バンドラー統合ではより小さなプログレッシブエントリーも使え、ランタイムサイズの契約で測定しています。各モードの起動はレンダリングモードを参照してください。
#操作コスト
検証する問い:読み込み後のクラス切り替え、初回のランタイムルール生成、DOM の追加・削除、配色切り替え、ビューポート変更、クリーンアップにはどれだけのコストがあるか。
dynamic、dashboard、stress-dom のフィクスチャでローカル Chromium の操作を測ります。Tailwind CSS 静的はスタイル・レイアウト・描画のブラウザー対照で、クライアントのランタイムルール生成に相当する実装はありません。
| 指標 | 値 | 詳細 |
|---|
| フィクスチャ数 | 3 | dynamic、dashboard、stress-dom の操作フィクスチャ |
|---|
| バリアント数 | 54 | 対応するフィクスチャ、モード、シナリオの組み合わせ |
|---|
| ブラウザー | Chromium 156.0.8078.4 | ローカルのトレース測定に使ったヘッドレスブラウザー |
|---|
| サンプル数 | 3 | 各既定操作バリアントの測定回数 |
|---|
| プログレッシブの CSS 採用 | 3/3 良好 | 1つ以上のプログレッシブ操作バリアントで採用したフィクスチャ |
|---|
操作コストをまとめたスナップショット。
既存クラスの切り替え
変更後の準備完了時間の中央値Master CSS ランタイム64要素
Master CSS プログレッシブ64要素
新しいクラスの切り替え
変更後の準備完了時間の中央値Master CSS ランタイム64要素
Master CSS プログレッシブ64要素
DOM の追加・削除
変更後の準備完了時間の中央値Master CSS ランタイム48要素
Master CSS プログレッシブ48要素
Tailwind CSS 静的48要素
主要な dynamic フィクスチャの各シナリオで、変更後に準備が整うまでの中央値。
既存クラスのランタイム更新
ランタイム変更処理の中央値Master CSS ランタイムスナップショットのルール +0
Master CSS プログレッシブスナップショットのルール +0
新しいクラスのランタイム更新
ランタイム変更処理の中央値Master CSS ランタイムスナップショットのルール +4
Master CSS プログレッシブスナップショットのルール +69
クリーンアップ周期のランタイム更新
ランタイム変更処理の中央値Master CSS ランタイムスナップショットのルール +3
Master CSS プログレッシブスナップショットのルール +68
Master ランタイム・プログレッシブの dynamic シナリオでの、ランタイムルール更新の中央値。
| フィクスチャ | シナリオ | モード | 準備完了 | ランタイム更新 | ルール数の差分 | スタイルのバイト差分 | スタイル再計算 | レイアウト | 描画 | DOM ノード数 | 影響数 | 算出スタイル | クリーンアップ | プログレッシブ CSS 採用済み | サンプル数 |
|---|
| Dynamic | Existing class toggle | Master CSS static | 59 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0 ms | 0.3 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Existing class toggle | Master CSS runtime | 62.6 ms | 0 ms | 0 | 0 kB | 0.2 ms | 0 ms | 0.3 ms | 310 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Existing class toggle | Master CSS progressive | 61.1 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0 ms | 0.3 ms | 311 | 64 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | Existing class toggle | Tailwind CSS static | 61 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0 ms | 0.3 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | New class toggle | Master CSS runtime | 62.2 ms | 0.5 ms | 4 | 0.2 kB | 0.8 ms | 0.5 ms | 0.4 ms | 310 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | New class toggle | Master CSS progressive | 60.8 ms | 0.3 ms | 69 | 0.2 kB | 0.8 ms | 0.5 ms | 0.4 ms | 311 | 64 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | DOM append/remove | Master CSS static | 60.6 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.1 ms | 0.2 ms | 309 | 48 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | DOM append/remove | Master CSS runtime | 63.6 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.1 ms | 0.2 ms | 310 | 48 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | DOM append/remove | Master CSS progressive | 59.5 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.1 ms | 0.2 ms | 311 | 48 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | DOM append/remove | Tailwind CSS static | 58.8 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.1 ms | 0.2 ms | 309 | 48 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Theme switch | Master CSS static | 62.9 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0 ms | 0.3 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Theme switch | Master CSS runtime | 60.8 ms | 0.1 ms | 1 | 0.1 kB | 0.5 ms | 0 ms | 0.3 ms | 310 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Theme switch | Master CSS progressive | 62.6 ms | 0.2 ms | 66 | 0.1 kB | 0.5 ms | 0 ms | 0.3 ms | 311 | 64 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | Theme switch | Tailwind CSS static | 62.3 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0 ms | 0.3 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Viewport resize | Master CSS static | 112.7 ms | 0 ms | 0 | 0 kB | 0.4 ms | 0.7 ms | 0.7 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Viewport resize | Master CSS runtime | 112.1 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.7 ms | 0.7 ms | 310 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Viewport resize | Master CSS progressive | 110.1 ms | 0 ms | 0 | 0 kB | 0.3 ms | 0.7 ms | 0.7 ms | 311 | 64 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | Viewport resize | Tailwind CSS static | 112.5 ms | 0 ms | 0 | 0 kB | 0.6 ms | 0.7 ms | 0.8 ms | 309 | 64 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Mutation cleanup cycle | Master CSS static | 329.4 ms | 0 ms | 0 | 0 kB | 1.1 ms | 1.5 ms | 3.2 ms | 309 | 192 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Mutation cleanup cycle | Master CSS runtime | 329.9 ms | 0.6 ms | 3 | 0.1 kB | 1.6 ms | 1.8 ms | 3.1 ms | 310 | 192 | 1 | 1 | 0 | 3 |
|---|
| Dynamic | Mutation cleanup cycle | Master CSS progressive | 330.2 ms | 0.5 ms | 68 | 0.1 kB | 1.6 ms | 1.6 ms | 2.8 ms | 311 | 192 | 1 | 1 | 1 | 3 |
|---|
| Dynamic | Mutation cleanup cycle | Tailwind CSS static | 328.3 ms | 0 ms | 0 | 0 kB | 1.1 ms | 1.3 ms | 3.3 ms | 309 | 192 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Existing class toggle | Master CSS static | 61.3 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0 ms | 0.6 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Existing class toggle | Master CSS runtime | 62.8 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0 ms | 0.5 ms | 982 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Existing class toggle | Master CSS progressive | 60.3 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0 ms | 0.5 ms | 983 | 160 | 1 | 1 | 1 | 3 |
|---|
| Dashboard | Existing class toggle | Tailwind CSS static | 60.5 ms | 0 ms | 0 | 0 kB | 0.7 ms | 0 ms | 0.7 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | DOM append/remove | Master CSS static | 61.1 ms | 0 ms | 0 | 0 kB | 0.4 ms | 0.1 ms | 0.3 ms | 981 | 80 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | DOM append/remove | Master CSS runtime | 60.9 ms | 0 ms | 0 | 0 kB | 0.4 ms | 0.1 ms | 0.3 ms | 982 | 80 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | DOM append/remove | Master CSS progressive | 61.1 ms | 0 ms | 0 | 0 kB | 0.4 ms | 0.1 ms | 0.3 ms | 983 | 80 | 1 | 1 | 1 | 3 |
|---|
| Dashboard | DOM append/remove | Tailwind CSS static | 63.4 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0.1 ms | 0.4 ms | 981 | 80 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Theme switch | Master CSS static | 61.2 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0 ms | 0.5 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Theme switch | Master CSS runtime | 61.2 ms | 0.2 ms | 1 | 0.1 kB | 0.8 ms | 0 ms | 0.5 ms | 982 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Theme switch | Master CSS progressive | 63.1 ms | 0.2 ms | 66 | 0.1 kB | 0.8 ms | 0 ms | 0.5 ms | 983 | 160 | 1 | 1 | 1 | 3 |
|---|
| Dashboard | Theme switch | Tailwind CSS static | 64 ms | 0 ms | 0 | 0 kB | 0.6 ms | 0 ms | 0.7 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Viewport resize | Master CSS static | 113.4 ms | 0 ms | 0 | 0 kB | 0.4 ms | 1.9 ms | 1.4 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Viewport resize | Master CSS runtime | 110.7 ms | 0 ms | 0 | 0 kB | 0.3 ms | 1.8 ms | 1.2 ms | 982 | 160 | 1 | 1 | 0 | 3 |
|---|
| Dashboard | Viewport resize | Master CSS progressive | 110.3 ms | 0 ms | 0 | 0 kB | 0.3 ms | 1.9 ms | 1.3 ms | 983 | 160 | 1 | 1 | 1 | 3 |
|---|
| Dashboard | Viewport resize | Tailwind CSS static | 110.3 ms | 0 ms | 0 | 0 kB | 0.5 ms | 1.8 ms | 1.5 ms | 981 | 160 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Existing class toggle | Master CSS static | 63.5 ms | 0 ms | 0 | 0 kB | 1.7 ms | 0 ms | 0.8 ms | 3,621 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Existing class toggle | Master CSS runtime | 61 ms | 0 ms | 0 | 0 kB | 1.8 ms | 0 ms | 0.7 ms | 3,622 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Existing class toggle | Master CSS progressive | 63.6 ms | 0 ms | 0 | 0 kB | 1.8 ms | 0 ms | 0.8 ms | 3,623 | 600 | 1 | 1 | 1 | 3 |
|---|
| Stress DOM | Existing class toggle | Tailwind CSS static | 61.6 ms | 0 ms | 0 | 0 kB | 2.2 ms | 0 ms | 1 ms | 3,621 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | DOM append/remove | Master CSS static | 62.9 ms | 0 ms | 0 | 0 kB | 0.6 ms | 0.1 ms | 0.5 ms | 3,621 | 160 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | DOM append/remove | Master CSS runtime | 60.6 ms | 0 ms | 0 | 0 kB | 0.6 ms | 0.1 ms | 0.6 ms | 3,622 | 160 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | DOM append/remove | Master CSS progressive | 63.2 ms | 0 ms | 0 | 0 kB | 0.5 ms | 0.1 ms | 0.5 ms | 3,623 | 160 | 1 | 1 | 1 | 3 |
|---|
| Stress DOM | DOM append/remove | Tailwind CSS static | 63.4 ms | 0 ms | 0 | 0 kB | 0.7 ms | 0.1 ms | 0.6 ms | 3,621 | 160 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Viewport resize | Master CSS static | 112.8 ms | 0 ms | 0 | 0 kB | 0.6 ms | 6.5 ms | 2.7 ms | 3,621 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Viewport resize | Master CSS runtime | 108.1 ms | 0 ms | 0 | 0 kB | 0.4 ms | 6.2 ms | 2.7 ms | 3,622 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Viewport resize | Master CSS progressive | 112.4 ms | 0 ms | 0 | 0 kB | 0.4 ms | 6.1 ms | 2.7 ms | 3,623 | 600 | 1 | 1 | 1 | 3 |
|---|
| Stress DOM | Viewport resize | Tailwind CSS static | 110.3 ms | 0 ms | 0 | 0 kB | 0.6 ms | 6 ms | 2.9 ms | 3,621 | 600 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Mutation cleanup cycle | Master CSS static | 262.8 ms | 0 ms | 0 | 0 kB | 1.8 ms | 2.7 ms | 7.7 ms | 3,621 | 480 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Mutation cleanup cycle | Master CSS runtime | 262.3 ms | 0.3 ms | 3 | 0.1 kB | 5.9 ms | 7.4 ms | 7.4 ms | 3,622 | 480 | 1 | 1 | 0 | 3 |
|---|
| Stress DOM | Mutation cleanup cycle | Master CSS progressive | 261.8 ms | 0.5 ms | 68 | 0.1 kB | 6.2 ms | 7.6 ms | 7.4 ms | 3,623 | 480 | 1 | 1 | 1 | 3 |
|---|
| Stress DOM | Mutation cleanup cycle | Tailwind CSS static | 263.1 ms | 0 ms | 0 | 0 kB | 2 ms | 2.6 ms | 7.5 ms | 3,621 | 480 | 1 | 1 | 0 | 3 |
|---|
対応するフィクスチャ・モード・シナリオの組み合わせの完全な操作コストデータ。
解釈:ランタイムとプログレッシブは、ユーザーに見える変更後の準備完了と、その後のランタイムのスタイルシート処理という2層で読みます。準備時間はハーネスのフレーム待ちを含みモード間でほぼ同じなので、追加コストはランタイム変更処理とスタイル再計算で比較します。ルール差分は公開 runtime スナップショットのルールを数えます。エンジン遅延中のプログレッシブではそこにルールはなく、hydration データにない最初のクラスがエンジンを起動し、サーバーのルールを状態へ採用します。そのため、その操作の差分には採用分も入ります。CSSOM コストはランタイム変更処理とスタイル再計算を比較してください。
制約:ルート遷移、HMR、開発フロー、CDN、Firefox、WebKit、公開実アプリのばらつきは測定しません。
#ブラウザーライフサイクルと長時間セッション
検証する問い:記録した各5分間のセッションで、描画とランタイムの処理がどれだけ蓄積したか。
ライフサイクルのスイートは Master CSS の静的、ランタイム、プログレッシブと Tailwind CSS 静的対照を比較します。下のグラフは5分間の長時間シナリオです。各モードは測定1回だけで、1サンプルの中央値はその1回の観察そのものであり、再現性の証拠ではありません。
表の経過時間はスクリプトによるセッション全体と、最後に安定を待つフレームを含みます。指標名は inp-style-interaction-ms ですが、このシナリオでは設計上約5分です。個別の入力遅延や Web Vitals INP を測るものではありません。
| 指標 | 値 | 詳細 |
|---|
| スナップショットのバリアント数 | 64 | 4モード、7シナリオ |
|---|
| 証拠のあるモード数 | 4/4 良好 | 分割した5分間の長時間セッションレポート |
|---|
| ブラウザー | Chromium 156.0.8078.4 | ローカルのトレース測定に使ったヘッドレスブラウザー |
|---|
| 長時間セッションのサンプル数 | 1 | コミット済みの証拠にある、各モードの5分間測定回数 |
|---|
| 算出スタイルの検証 | 4/4 良好 | computed-style-valid = 1 の5分間エビデンスバリアント |
|---|
| プログレッシブの CSS 採用 | 1/1 良好 | Master プログレッシブの長時間セッション証拠バリアント |
|---|
ブラウザーライフサイクルの証拠の網羅性と正しさの確認。
スタイル再計算
5分間の実行 · n=1Master CSS ランタイム
Master CSS プログレッシブ
Tailwind CSS 静的
レイアウト
5分間の実行 · n=1Master CSS プログレッシブ
Tailwind CSS 静的
描画
5分間の実行 · n=1Master CSS ランタイム
Master CSS プログレッシブ
Tailwind CSS 静的
ランタイムの変更処理
5分間の実行 · n=1Master CSS ランタイム78ルール
Master CSS プログレッシブ78ルール
各モード1回の5分間実行で観測した、ブラウザーの描画とランタイム処理。
| モード | セッション経過時間 | スタイル再計算 | レイアウト | 描画 | ロングタスク数 | CSSOM ルール数 | ランタイムルール数 | ランタイム変更処理 | JS ヒープ | 算出スタイル | プログレッシブ CSS 採用済み | サンプル数 |
|---|
| Master CSS static | 300,115.9 ms | 6,644 ms | 1,307.4 ms | 5,760.7 ms | 0 | 98 | 0 | 0 ms | 1,796.3 kB | 1 | 0 | 1 |
|---|
| Master CSS runtime | 300,102.5 ms | 5,047.7 ms | 1,119 ms | 4,698.8 ms | 1 | 59 | 78 | 211.3 ms | 5,358 kB | 1 | 0 | 1 |
|---|
| Master CSS progressive | 300,119.9 ms | 8,913.1 ms | 1,659.5 ms | 7,194.2 ms | 0 | 59 | 78 | 312.6 ms | 4,808.1 kB | 1 | 1 | 1 |
|---|
| Tailwind CSS static | 300,117.2 ms | 12,181.7 ms | 1,718.1 ms | 6,998.8 ms | 0 | 112 | 0 | 0 ms | 1,479.7 kB | 1 | 0 | 1 |
|---|
全モードの完全な5分間セッションの証拠。
解釈:スタイル再計算の合計と、各モードが加えるランタイム変更処理を比較します。各1回の実行では安定した高速化は証明できません。レイアウト、描画、応答性、全体性能の結論を出す前に、同じマシンで反復実行を比較してください。
制約:Chromium が安定したトレース指標を提供しない限り、セレクター照合の時間は CSSOM・ルール量とスタイル再計算からの推測です。CSSOM メモリーと GC 負荷は、同じブラウザー版で再現できるほど収集方法が安定した場合だけ報告します。
#データソース
グラフは2026年11月4日付の、benchmarks/**/snapshot.json と benchmarks/browser-lifecycle/long-session-evidence.json にコミットされたスナップショットを読みます。フィクスチャ、指標群、公開規則、記録したコマンド、検証手順はベンチマーク READMEにあります。再現には対応するソースリビジョンとロックファイルが必要で、現行パッケージのインストールだけでは足りません。