网站导航

佐证资料

基准测试

观察页面交付的 CSS 有多少匹配该页、比较相同 UI 的生成 CSS,并结合限制检查构建与运行时成本。

本页内容

#概览

这些测量先回答两个问题:文档页面交付的 CSS 有多少匹配该页,以及相同 UI 使用 Master CSS 与 Tailwind CSS 时各会生成多少 CSS。技术附录涵盖构建时间、Chromium 对 CSS 规模的反应,以及各种 Master CSS 渲染模式的成本。将结果应用到其他应用前,请先确认各节的条件与限制。

快照于 2026 年 11 月 4 日,在同一台机器(Apple M5 Max、macOS)上使用 Chromium 156 记录。Master CSS 软件包构建自修订版 add10eec6。浏览器生命周期快照来自当天较早记录的 3fc239c6c;add10eec6 修改编译器与静态构建宿主,没有修改运行时、预设或引擎。Master CSS 文档页面取自同一份检出目录的生产构建,其他文档网站则在同日获取公开页面。

指标值详细信息
文档页面 CSS23.1 / 28.9 kB Master CSS 网站,Brotli:所列页面/五页中位数。
匹配的样式规则55% Master CSS 网站,五页中位数,为 7 站中最高。
相同 UI 的生成 CSS1.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 静态,各运行一次五分钟。
主要结果由已提交的快照计算。下方各节提供每项结果的条件与完整数据。

#文档页面 CSS

回答的问题:从各文档页面初始 HTML 找到的行内 style 主体与链接样式表有多大?其中多少样式规则匹配该页?

Raw
Master CSSMaster CSS 0.8 kB + 其他行内 CSS 1.0 kB + 外部 CSS 108.6 kB
110.4 kB
Angular1.4× Master CSS
151.8 kB
Vue.js1.7× Master CSS
186.3 kB
Material UI2.5× Master CSS
277.4 kB
Bootstrap2.7× Master CSS
293.9 kB
Next.js4.3× Master CSS
479.9 kB
Tailwind CSS6.0× Master CSS
657.7 kB

两种视图使用相同的刻度和已提交的页面快照。

文档页面快照中记录的 CSS 正文大小. Brotli 数值为各个响应正文分别压缩后的大小之和。

图表加总各网站所列页面的行内 style 主体与链接样式表,Brotli 视图分别压缩每份内容。单个页面可能无法代表网站,因此表格为每站另外加入四个文档页面,并呈现范围。

网站所列页面(Brotli)五页中位数(Brotli)五页范围(Brotli)五页中位数(原始大小)匹配的样式规则,中位数匹配的样式规则,范围
Angular23.3 kB23.3 kB23.2 kB – 24.5 kB151.8 kB49%43% – 53%
Material UI27.1 kB27.6 kB26.9 kB – 36.2 kB292.2 kB40%38% – 48%
Master CSS23.1 kB28.9 kB23.1 kB – 34.2 kB130.6 kB55%46% – 60%
Bootstrap32.6 kB32.6 kB32.6 kB – 32.6 kB293.9 kB13%11% – 13%
Vue.js33.4 kB33.4 kB33.4 kB – 33.4 kB186.3 kB26%22% – 28%
Tailwind CSS58.4 kB58.4 kB58.4 kB – 58.4 kB657.7 kB8%7% – 9%
Next.js61.4 kB61.4 kB61.4 kB – 61.4 kB479.9 kB13%11% – 14%
每站五个文档页面。匹配的样式规则,其选择器会在 1280 × 800 视口中匹配已加载页面的某个元素。
指标值详细信息
页面数74 sitemap 列出的每个页面
CSS,Brotli29.7 kB (23.1 kB – 34.4 kB) 中位数(最小值 – 最大值)
CSS,原始大小133.7 kB (110.4 kB – 156.3 kB) 中位数(最小值 – 最大值)
匹配的样式规则51% (38% – 60%) 中位数(最小值 – 最大值)
用相同方式测量 Master CSS 网站 sitemap 列出的每个文档页面。

Master CSS 文档页面结合两种 CSS。每页的 style#master-css 主体保有该页使用的工具类,所列页面中这部分小于 1 kB。链接样式表包含网站设计系统组件、预设基础样式及其引用的令牌,占了大多数字节。每份链接样式表属于一个组件,并且完整交付,因此使用较多组件的页面会链接更多文件,各页总量也不同。只渲染组件部分内容的页面,例如尚未打开的搜索对话框或少量文章组件,仍会收到该组件全部规则,这是大多数未匹配规则的来源。其他网站中,有几站在每页交付相同样式表。

匹配规则比例衡量页面 CSS 与该页的贴合程度,与大小无关。移除选择器的状态伪类与伪元素后,若能匹配加载后的元素,就计为匹配;其他视口、配色或后续交互的规则,只有在元素不存在时才计为未匹配。此比例反映各站自己的样式表,而不只是 CSS 框架的特性。

限制:这些是收集到的 CSS 主体大小,不是浏览器传输或时间测量。收集器不追踪 CSS 导入依赖图,也不计算 JavaScript 注入样式。完整响应压缩、缓存复用、头部、CDN 行为、字体、图片与应用运行时工作均不在比较范围内。各站 CSS 还反映自身设计与构建选择,因此此样本不能单独隔离 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
1.9 kB
Tailwind CSS
2.6 kB
docs 测试用例采用 CLI 配置时,经 Brotli 压缩的 CSS 输出。
Master CSS数量为原来的 1/1.5
153
Tailwind CSS
226
通过 CSS AST 解析取得的 docs 测试用例生成声明数。

#完整数据

完整表格保留所有实测测试用例,以及 CLI/Vite 两种配置变体。

测试用例变体未压缩GzipBrotli文件数
MinimalMaster CSS static CLI5.6 kB2.0 kB1.7 kB1
MinimalMaster CSS static Vite5.6 kB2.0 kB1.7 kB1
MinimalTailwind CSS CLI9.3 kB2.7 kB2.3 kB1
MinimalTailwind CSS Vite7.9 kB2.5 kB2.1 kB1
DocsMaster CSS static CLI6.4 kB2.3 kB1.9 kB1
DocsMaster CSS static Vite6.4 kB2.3 kB1.9 kB1
DocsTailwind CSS CLI12.2 kB3.1 kB2.6 kB1
DocsTailwind CSS Vite10.2 kB2.9 kB2.5 kB1
DashboardMaster CSS static CLI6.7 kB2.3 kB1.9 kB1
DashboardMaster CSS static Vite6.7 kB2.3 kB1.9 kB1
DashboardTailwind CSS CLI10.7 kB2.9 kB2.4 kB1
DashboardTailwind CSS Vite8.9 kB2.7 kB2.3 kB1
Stress CSSMaster CSS static CLI12.6 kB3.1 kB2.0 kB1
Stress CSSMaster CSS static Vite12.6 kB3.1 kB2.1 kB1
Stress CSSTailwind CSS CLI17.3 kB3.7 kB2.6 kB1
Stress CSSTailwind CSS Vite12.9 kB3.5 kB2.4 kB1
每个实测测试用例与配置的原始、gzip、brotli CSS 字节数据及 CSS 文件数。
测试用例变体规则数选择器数声明数自定义属性数@规则数层叠层块数未分层规则数组合符数最大选择器优先级最大复杂度
MinimalMaster CSS static CLI86138134216410202
MinimalMaster CSS static Vite86138134216410202
MinimalTailwind CSS CLI861311744113413109
MinimalTailwind CSS Vite991321994112413109
DocsMaster CSS static CLI102154153247410202
DocsMaster CSS static Vite102154153247410202
DocsTailwind CSS CLI1021472265624413109
DocsTailwind CSS Vite1161492515623413109
DashboardMaster CSS static CLI108160161276410202
DashboardMaster CSS static Vite108160161276410202
DashboardTailwind CSS CLI1051501954213413209
DashboardTailwind CSS Vite1181512204212413209
Stress CSSMaster CSS static CLI301353352256410202
Stress CSSMaster CSS static Vite301353352256410202
Stress CSSTailwind CSS CLI3003453692811413109
Stress CSSTailwind CSS Vite3123463932810413109
从生成 CSS 解析的规则、选择器、声明、at-rule、层叠层与选择器形态数据。

解读:在讨论浏览器成本前,CSS 结构指标先说明字节数为何不同。Tailwind CSS 与 Master CSS 测试用例以等效的渲染 UI 意图为目标,并不追求相同类名字符串。

所有实测配置均输出一个 CSS 文件。Master CSS 静态构建会内联入口导入的样式表,包括预设,因此页面和使用 Tailwind CSS 一样,通过一次请求取得生成 CSS。保留外部导入、命名空间,或对自身含导入的文件进行限定条件导入的样式表仍为独立文件;这些测试用例均不存在此类情况。

限制:这些数值不测量浏览器解析、样式重计算、布局、绘制、交互成本、监视模式或 HMR。测试用例仅使用工具类;页面 CSS 样本显示自行编写的组件 CSS 可能增加多少内容。


#相较七月快照的变化

前次快照日期为 2026 年 7 月 1 日,此后该修订版的引擎已迁至 Rust,类名语法也已改变。为区分代码变化与机器、浏览器、基准测试框架的影响,七月修订版 cd5a3972a 已重新构建,并在与当前测量相同的机器及 Chromium 版本上,重新运行该修订版自己的测试执行器。生产构建在两份检出目录间交替执行三次,让机器后台负载对双方的影响相近。

重新运行后,七月的静态 CSS 输出逐字节一致,因此较早的数据对当时修订版有效。当前测试用例使用现行类名语法表达相同渲染值,其中每个类名都会生成 CSS,并通过 CLI 的 --strict 模式。

测量项目范围2026 年 7 月 2 日2026 年 11 月 4 日变化
Master CSS CLI CSS (Brotli)Static CSS output1.8 kB1.9 kB+5%
Master CSS CLI CSS filesStatic CSS output11Same
Master CSS Vite CSS filesStatic CSS output11Same
Tailwind CSS CLI CSS (Brotli, control)Static CSS output2.6 kB2.6 kB+2%
Master CSS CLI cold buildProduction build155.8 ms274.2 ms+76%
Master CSS Vite cold buildProduction build230.9 ms340.1 ms+47%
Tailwind CSS CLI cold build (control)Production build88.2 ms77.0 ms−13%
Tailwind CSS Vite cold build (control)Production build150.8 ms129.2 ms−14%
Runtime JS (Brotli)Runtime delivery22.8 kB33.3 kB+46%
Runtime default data (Brotli)Runtime delivery9.8 kB15.4 kB+57%
Runtime bootstrapRuntime delivery10.3 ms8.7 ms−16%
Runtime observeRuntime delivery4.7 ms4.5 ms−4%
Runtime navigation readyRuntime delivery40.8 ms39.2 ms−4%
Progressive requests on loadProgressive delivery32−33%
Progressive hydration data (Brotli)Progressive delivery1.6 kB464 B0.3×
Progressive bootstrapProgressive delivery13.2 ms5.4 ms0.4×
Progressive observe and hydrateProgressive delivery2.1 ms0.3 ms0.1×
Progressive navigation readyProgressive delivery40.4 ms39.0 ms−3%
Tailwind CSS static navigation ready (control)Progressive delivery23.9 ms25.8 ms+8%
Runtime first-time class: mutation workInteraction0.3 ms0.5 ms+67%
Progressive first-time class: mutation workInteraction0.6 ms0.3 ms0.5×
Tailwind CSS existing-class toggle ready (control)Interaction46.6 ms61.0 ms+31%
各修订版自己的执行器,在相同机器与 Chromium 版本上的中位数。双方生产构建使用相同 Node.js 版本;每个构建中位数汇总三轮交替执行、共 15 次命令。

在此机器上,当前修订版启动浏览器运行时更快,也用较少数据为渐进式页面完成水合,但下载的运行时更大,冷启动生产命令耗时更久。docs 测试用例的生成 CSS 约增加 5%,与七月一样以单个文件交付。每份检出目录安装自己的 Tailwind CSS 与 Vite 版本,因此 Tailwind CSS 对照组同时反映升级及各次运行噪声。

两个修订版中,各模式(包括 Tailwind CSS)的交互就绪时间都差不多。限制来自测试框架等待帧,而不是 Master CSS 工作,因此读数会以约一帧(17 ms)为步长变化;七月修订版中较低的 Tailwind CSS 读数就是这样的一级差异。


#技术附录

这些测试组介绍上述结果背后的成本:生产命令、Chromium 对 CSS 规模的反应,以及每种 Master CSS 渲染模式在浏览器中发送与执行的内容。选择渲染模式或诊断构建时间时,可以阅读这些数据。

#核心假设

交付方面的问题是:加载较少 CSS 规则所节省的浏览器工作,能否抵消运行时生成规则的成本。请比较完整页面生命周期:初始加载、后续交互与长时间会话清理。

运行时与渐进式渲染会增加 JavaScript 工作,从观察到的类名生成规则。此类名集合若小于从静态源文件得到的集合,就可能减少初始 CSS 与 CSSOM 规则量。减少量能否抵消启动与变化处理,取决于工作负载。Tailwind CSS 在此作为零运行时的静态 CSS 对照:它不提供等效的运行时实现,但能代表这项权衡中较大静态 CSS 的一侧。

当前证据应视为方向性结果。在实测测试用例中,若运行时/渐进式模式减少的 CSSOM/规则量与样式重计算足以抵消运行时启动、观察与变化处理,就能支持假设;这并不代表每个应用都会更快。

这些测试组没有把选择器匹配直接测量为稳定的 Chromium 指标,而是根据交付的选择器、CSSOM 规则数、运行时生成规则数,以及跟踪记录中的样式重计算推断。

#如何阅读结果

基准测试在回答明确且范围狭窄的问题时才有用。评估这项交付权衡时,请按以下顺序阅读测量结果:

  1. 页面 CSS 与静态 CSS 输出显示页面或静态配置交付多少字节、文件、选择器、声明与规则。
  2. 浏览器 CSS 成本校准 DOM 固定、CSS 规则量增长时 Chromium 的反应。
  3. 交付模式显示 Master 静态、运行时、渐进式,以及 Tailwind 静态模式在首次加载时发送与执行的内容。
  4. 交互成本测量加载后 DOM 与类名变化,包括运行时规则处理。
  5. 浏览器生命周期证据结合长时间会话的浏览器工作、CSSOM/规则量与运行时检测数据。

各图表是针对实测测试用例与命令的证据;应用到其他应用前,请先与完整表格及已提交快照交叉比较。

问题主要证据
从各文档页面找到的 CSS 主体有多大,页面使用多少?页面 CSS 大小快照
相同 UI 生成的静态 CSS 有多大?静态 CSS 输出与 CSS 结构快照
生产命令耗时多久?生产构建
Master CSS 构建时间花在哪里?构建路径诊断
CSS 规则量对 Chromium 有何成本?浏览器 CSS 成本校准
各交付模式首次加载会发送与执行什么?Master CSS 交付模式
加载后,类名与 DOM 变化时会发生什么?交互成本
运行时工作会改变长时间会话的浏览器成本吗?浏览器生命周期证据
修订版之间改变了什么?修订版比较

Tailwind CSS 不是等效运行时实现的比较对象。在面向运行时的测试组中,它是静态浏览器对照基线,代表假设中零运行时、较大静态 CSS 的一侧。

数值较低并不代表在所有情境下都更好。较小 CSS 产物可能把工作转移到运行时,较快冷启动命令可能掩盖较少的有效输出,本地 Chromium 跟踪也不能替代真实生产环境遥测。

测量时间时还应检查正确性:测试用例渲染了预期 UI,更小或更快的结果才有用。测试组有记录时,表格会包含计算样式与渐进式采用检查。

#生产构建

回答的问题:各静态测试用例与配置的完整冷启动或重复生产命令耗时多久?

Master CSS
206 ms
Tailwind CSS速度为 3.9 倍
52.3 ms
docs 测试用例采用 CLI 配置时,冷启动生产命令的中位数。
测试用例变体冷启动中位数重复运行中位数样本数
MinimalMaster CSS static CLI209 ms204 ms5
MinimalMaster CSS static Vite269 ms254 ms5
MinimalTailwind CSS CLI50.7 ms47.3 ms5
MinimalTailwind CSS Vite97.5 ms91.9 ms5
DocsMaster CSS static CLI206 ms203 ms5
DocsMaster CSS static Vite269 ms258 ms5
DocsTailwind CSS CLI52.3 ms49.3 ms5
DocsTailwind CSS Vite101 ms91.1 ms5
DashboardMaster CSS static CLI213 ms209 ms5
DashboardMaster CSS static Vite307 ms263 ms5
DashboardTailwind CSS CLI56.1 ms51.6 ms5
DashboardTailwind CSS Vite110 ms96.6 ms5
Stress CSSMaster CSS static CLI235 ms216 ms5
Stress CSSMaster CSS static Vite287 ms276 ms5
Stress CSSTailwind CSS CLI52.8 ms50.5 ms5
Stress CSSTailwind CSS Vite105 ms98.8 ms5
每个实测测试用例与配置的冷启动及重复生产命令时间数据。

解读:构建时间包括各命令路径的进程、CLI 或 Vite,以及软件包启动,因此小型测试用例主要测到固定启动成本。重复生产构建指在同一工作目录执行第二次命令,而不是监视模式或 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` 测试用例的样式表入口注册,与首次通过公开接口完整组合比较
整理后的 Master CSS 构建路径诊断快照。

CLI 路径

docs 测试用例中位数
完整 CLI 命令3 个样本
216.5 ms
CLI 启动探针3 个样本
210.8 ms
扫描器导入探针3 个样本
15.8 ms
源文件扫描3 个样本
1.15 ms
CSS 提取3 个样本
52.2 ms

Vite 路径

docs 测试用例中位数
Master Vite 命令开销3 个样本
194.7 ms
@master/css-vite 导入探针3 个样本
27.1 ms
Vite 核心模块导入探针3 个样本
82.6 ms
Vite 扫描器初始化3 个样本
6.06 ms
Vite 包 CSS 提取3 个样本
1.42 ms

样式表流水线

docs 测试用例中,各项公开接口操作分别测得的中位数
样式表注册3 个样本
47.3 ms
首次完整组合3 个样本
53.4 ms
重复完整组合3 个样本
31.8 ms
不含原生 CSS 的组合3 个样本
46.5 ms
不含生成 CSS 的组合3 个样本
29.1 ms
docs 测试用例的诊断中位数。启动探针提供方向性信息,不能相加作为火焰图。
测试用例CLI 命令CLI 提取Vite 开销Vite 导入Vite 扫描器注册首次组合流水线总计最终 CSS
Minimal227.1 ms54 ms211.9 ms28.3 ms6.46 ms48.5 ms53.4 ms217.2 ms5.6 kB
Docs216.5 ms52.2 ms194.7 ms27.1 ms6.06 ms47.3 ms53.4 ms218.9 ms6.4 kB
Dashboard211.1 ms55.9 ms204.5 ms26.5 ms6 ms47.3 ms56.1 ms230 ms6.7 kB
Stress CSS220.8 ms61 ms206.3 ms26.7 ms6.02 ms47.4 ms68.6 ms263.1 ms12.6 kB
每个实测测试用例的完整构建路径诊断快照数据。

解读:常规测试用例命令中,模块导入与源文件扫描各花数毫秒;注册样式表入口及组合输出各花数十毫秒,同配置重复组合仍约需首次的五分之三。一次 CLI 运行的 CPU profile(node --cpu-prof)将最大一部分、约三分之一的命令时间,归因于编译导入的预设样式表依赖图。此工作与测试用例类名无关,因此小型测试用例也几乎付出和大型相同的固定成本。

限制:诊断探针测量各自不同的范围与子步骤,不应把时间相加,作为同一份生产执行跟踪。

#浏览器 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 个声明
0.4 ms
中型 CSS5.4 kB,7,542 个声明
0.4 ms
大型 CSS16.4 kB,30,042 个声明
0.4 ms
超大型 CSS45.6 kB,90,042 个声明
0.4 ms

布局

热缓存中位数
小型 CSS1.6 kB,792 个声明
0.7 ms
中型 CSS5.4 kB,7,542 个声明
0.8 ms
大型 CSS16.4 kB,30,042 个声明
0.7 ms
超大型 CSS45.6 kB,90,042 个声明
0.8 ms

绘制

热缓存中位数
小型 CSS1.6 kB,792 个声明
0.6 ms
中型 CSS5.4 kB,7,542 个声明
0.6 ms
大型 CSS16.4 kB,30,042 个声明
0.5 ms
超大型 CSS45.6 kB,90,042 个声明
0.6 ms
CSS 规则量增长、可见 DOM 固定时,热缓存跟踪中位数。

样式重计算

热缓存中位数
小型 DOM712 个节点
0.9 ms
中型 DOM7,012 个节点
6.2 ms
大型 DOM21,012 个节点
17.7 ms

布局

热缓存中位数
小型 DOM712 个节点
1.6 ms
中型 DOM7,012 个节点
15.7 ms
大型 DOM21,012 个节点
55.4 ms

绘制

热缓存中位数
小型 DOM712 个节点
1.4 ms
中型 DOM7,012 个节点
4.6 ms
大型 DOM21,012 个节点
10.6 ms
DOM 规模增长、CSS 固定时,热缓存跟踪中位数。
坐标轴变体缓存CSS brotli规则数声明数DOM 节点数样式重计算布局绘制样本数
CSS volumeSmall CSSCold cache1.6 kB2637922050.6 ms3.8 ms0.9 ms3
CSS volumeSmall CSSWarm cache1.6 kB2637922050.4 ms0.7 ms0.6 ms3
CSS volumeMedium CSSCold cache5.4 kB2,5137,5422051 ms4.4 ms1.1 ms3
CSS volumeMedium CSSWarm cache5.4 kB2,5137,5422050.4 ms0.8 ms0.6 ms3
CSS volumeLarge CSSCold cache16.4 kB10,01330,0422051.7 ms3.9 ms0.9 ms3
CSS volumeLarge CSSWarm cache16.4 kB10,01330,0422050.4 ms0.7 ms0.5 ms3
CSS volumeXLarge CSSCold cache45.6 kB30,01390,0422053.7 ms3.9 ms0.8 ms3
CSS volumeXLarge CSSWarm cache45.6 kB30,01390,0422050.4 ms0.8 ms0.6 ms3
DOM scalingSmall DOMCold cache0.5 kB15507121 ms4.7 ms1.7 ms3
DOM scalingSmall DOMWarm cache0.5 kB15507120.9 ms1.6 ms1.4 ms3
DOM scalingMedium DOMCold cache0.5 kB15507,0126.4 ms19.9 ms4 ms3
DOM scalingMedium DOMWarm cache0.5 kB15507,0126.2 ms15.7 ms4.6 ms3
DOM scalingLarge DOMCold cache0.5 kB155021,01218.1 ms51.7 ms8.7 ms3
DOM scalingLarge DOMWarm cache0.5 kB155021,01217.7 ms55.4 ms10.6 ms3
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 响应及首次加载请求的每个外部资源各计一次。行内 CSS 与注入的水合清单已在 HTML 内,因此不另列区段。空资源字段不会在总量中添加压缩容器字节。

Master CSS 静态2 次请求3.9 kB
  • HTML2 kB
  • 外部 CSS1.9 kB
Master CSS 运行时3 次请求50.9 kB
  • HTML2.2 kB
  • 运行时 JS33.3 kB
  • 运行时程序15.4 kB
Master CSS 渐进式2 次请求36.7 kB
  • HTML3.5 kB
  • 运行时 JS33.3 kB
Tailwind CSS 静态2 次请求4.5 kB
  • HTML1.9 kB
  • 外部 CSS2.6 kB
docs 测试用例记录的响应资源,分别用 Brotli 压缩。所有条形共用从零到最大总量的刻度,各区段显示资源的贡献。

这些总量根据记录的资源字段估算,而不是实测网络传输大小。它们排除头部与传输开销,且每页 HTML 都包含基准测试框架脚本。详细表格把分别压缩的行内 CSS 与水合片段保留作诊断;若将这些列加入响应总量,会重复计算内容。

导航至就绪时间

中位数
Master CSS 静态3 个样本
25 ms
Master CSS 运行时3 个样本
39.2 ms
Master CSS 渐进式3 个样本
39 ms
Tailwind CSS 静态3 个样本
25.8 ms

样式重计算

中位数
Master CSS 静态3 个样本
0.9 ms
Master CSS 运行时3 个样本
0.7 ms
Master CSS 渐进式3 个样本
0.6 ms
Tailwind CSS 静态3 个样本
1 ms

布局

中位数
Master CSS 静态3 个样本
6.9 ms
Master CSS 运行时3 个样本
3.7 ms
Master CSS 渐进式3 个样本
3.6 ms
Tailwind CSS 静态3 个样本
7.7 ms

绘制

中位数
Master CSS 静态3 个样本
1.3 ms
Master CSS 运行时3 个样本
0.7 ms
Master CSS 渐进式3 个样本
0.7 ms
Tailwind CSS 静态3 个样本
1.2 ms
docs 测试用例的本地 Chromium 加载时间中位数。

运行时启动

中位数
Master CSS 运行时3 个样本
8.7 ms
Master CSS 渐进式3 个样本
5.4 ms

运行时观察

中位数
Master CSS 运行时3 个样本
4.5 ms
Master CSS 渐进式3 个样本
0.3 ms
Master 运行时与渐进式模式的运行时启动及观察中位数。
测试用例模式响应资源HTML外部 CSS行内 CSS(HTML 中)运行时 JS运行时程序水合(HTML 中)规则数声明数导航就绪样式重计算布局绘制运行时启动运行时观察渐进式已采用 CSS
MinimalMaster CSS static3.1 kB1.4 kB1.7 kB0 kB0 kB0 kB0 kB8613424.6 ms0.8 ms5.4 ms0.8 ms0 ms0 ms0
MinimalMaster CSS runtime50.4 kB1.7 kB0 kB0 kB33.3 kB15.4 kB0 kB0039.6 ms0.6 ms3 ms0.4 ms8.9 ms4.2 ms0
MinimalMaster CSS progressive36 kB2.7 kB0 kB0.8 kB33.3 kB0 kB0.4 kB496739.8 ms0.5 ms2.8 ms0.4 ms4.2 ms0.3 ms1
MinimalTailwind CSS static3.7 kB1.4 kB2.3 kB0 kB0 kB0 kB0 kB8617423.1 ms0.7 ms4.6 ms0.6 ms0 ms0 ms0
DocsMaster CSS static3.9 kB2 kB1.9 kB0 kB0 kB0 kB0 kB10215325 ms0.9 ms6.9 ms1.3 ms0 ms0 ms0
DocsMaster CSS runtime50.9 kB2.2 kB0 kB0 kB33.3 kB15.4 kB0 kB0039.2 ms0.7 ms3.7 ms0.7 ms8.7 ms4.5 ms0
DocsMaster CSS progressive36.7 kB3.5 kB0 kB1 kB33.3 kB0 kB0.5 kB658639 ms0.6 ms3.6 ms0.7 ms5.4 ms0.3 ms1
DocsTailwind CSS static4.5 kB1.9 kB2.6 kB0 kB0 kB0 kB0 kB10222625.8 ms1 ms7.7 ms1.2 ms0 ms0 ms0
DashboardMaster CSS static3.8 kB1.9 kB1.9 kB0 kB0 kB0 kB0 kB10816123.7 ms8 ms2.7 ms1.4 ms0 ms0 ms0
DashboardMaster CSS runtime50.9 kB2.2 kB0 kB0 kB33.3 kB15.4 kB0 kB0040.7 ms5.8 ms2 ms0.9 ms9.1 ms4.6 ms0
DashboardMaster CSS progressive36.7 kB3.4 kB0 kB1 kB33.3 kB0 kB0.5 kB719442.4 ms5.4 ms1.8 ms0.8 ms6.2 ms0.4 ms1
DashboardTailwind CSS static4.3 kB1.9 kB2.4 kB0 kB0 kB0 kB0 kB10519523.1 ms9 ms2.7 ms1.2 ms0 ms0 ms0
Stress CSSMaster CSS static4.3 kB2.2 kB2 kB0 kB0 kB0 kB0 kB30135224.1 ms1.3 ms5.9 ms1.1 ms0 ms0 ms0
Stress CSSMaster CSS runtime51.2 kB2.5 kB0 kB0 kB33.3 kB15.4 kB0 kB0039.4 ms1.1 ms3.6 ms0.6 ms12.6 ms7.9 ms0
Stress CSSMaster CSS progressive37.4 kB4.1 kB0 kB1.1 kB33.3 kB0 kB0.5 kB26428539.3 ms1 ms3.6 ms0.7 ms6.1 ms0.7 ms1
Stress CSSTailwind CSS static4.8 kB2.3 kB2.6 kB0 kB0 kB0 kB0 kB30036923.3 ms1.9 ms5.8 ms1 ms0 ms0 ms0
每个实测测试用例与模式的完整交付模式快照数据。

解读:运行时模式不交付生成 CSS,但会在页面应用样式前获取浏览器运行时与编译后的默认程序。渐进式模式从 HTML 中的服务器/构建时 CSS 开始,由运行时采用;只有类名不在水合数据中时才获取程序,这些初始加载没有发生此情况。

限制:这些数值仅测量本地测试用例的初始加载,加载后变化由交互测试组处理。Master 静态与 Tailwind 静态各加载一份 CLI 生成样式表,根据等效测试用例意图构建,而不是相同类名字符串。运行时与渐进式页面加载自包含的全局运行时包;打包器集成可以加载更小的渐进式入口,其测量见运行时大小契约。各模式启动方式请参阅渲染模式。

#交互成本

回答的问题:加载后切换类名、首次运行时规则生成、DOM 添加/移除、主题切换、视口调整与清理周期,各有多少成本?

此测试组在 dynamic、dashboard 与 stress-dom 测试用例上测量本地 Chromium 交互。Tailwind CSS 静态变体作为样式/布局/绘制工作的浏览器对照组,没有等效的客户端运行时规则生成。

指标值详细信息
测试用例数3 dynamic、dashboard 与 stress-dom 交互测试用例
变体数54 支持的测试用例、模式与场景组合
浏览器Chromium 156.0.8078.4 本地跟踪测量使用的无头浏览器
样本数3 每个默认交互变体的实测轮数
渐进式 CSS 采用3/3 良好至少一个渐进式交互变体完成采用的测试用例
整理后的交互成本快照。

切换既有类名

变更后就绪时间中位数
Master CSS 静态64 个元素
59 ms
Master CSS 运行时64 个元素
62.6 ms
Master CSS 渐进式64 个元素
61.1 ms
Tailwind CSS 静态64 个元素
61 ms

切换新类名

变更后就绪时间中位数
Master CSS 运行时64 个元素
62.2 ms
Master CSS 渐进式64 个元素
60.8 ms

DOM 添加/移除

变更后就绪时间中位数
Master CSS 静态48 个元素
60.6 ms
Master CSS 运行时48 个元素
63.6 ms
Master CSS 渐进式48 个元素
59.5 ms
Tailwind CSS 静态48 个元素
58.8 ms
主要 dynamic 测试用例场景中,变更后就绪时间的中位数。

既有类名的运行时更新

运行时变化处理中位数
Master CSS 运行时快照规则 +0
0 ms
Master CSS 渐进式快照规则 +0
0 ms

新类名的运行时更新

运行时变化处理中位数
Master CSS 运行时快照规则 +4
0.5 ms
Master CSS 渐进式快照规则 +69
0.3 ms

清理周期的运行时更新

运行时变化处理中位数
Master CSS 运行时快照规则 +3
0.6 ms
Master CSS 渐进式快照规则 +68
0.5 ms
Master 运行时与渐进式 dynamic 测试用例场景的运行时规则更新中位数。
测试用例场景模式就绪运行时更新规则数差量样式字节差量样式重计算布局绘制DOM 节点数影响数计算样式清理渐进式已采用 CSS样本数
DynamicExisting class toggleMaster CSS static59 ms0 ms00 kB0.3 ms0 ms0.3 ms309641103
DynamicExisting class toggleMaster CSS runtime62.6 ms0 ms00 kB0.2 ms0 ms0.3 ms310641103
DynamicExisting class toggleMaster CSS progressive61.1 ms0 ms00 kB0.3 ms0 ms0.3 ms311641113
DynamicExisting class toggleTailwind CSS static61 ms0 ms00 kB0.3 ms0 ms0.3 ms309641103
DynamicNew class toggleMaster CSS runtime62.2 ms0.5 ms40.2 kB0.8 ms0.5 ms0.4 ms310641103
DynamicNew class toggleMaster CSS progressive60.8 ms0.3 ms690.2 kB0.8 ms0.5 ms0.4 ms311641113
DynamicDOM append/removeMaster CSS static60.6 ms0 ms00 kB0.3 ms0.1 ms0.2 ms309481103
DynamicDOM append/removeMaster CSS runtime63.6 ms0 ms00 kB0.3 ms0.1 ms0.2 ms310481103
DynamicDOM append/removeMaster CSS progressive59.5 ms0 ms00 kB0.3 ms0.1 ms0.2 ms311481113
DynamicDOM append/removeTailwind CSS static58.8 ms0 ms00 kB0.3 ms0.1 ms0.2 ms309481103
DynamicTheme switchMaster CSS static62.9 ms0 ms00 kB0.3 ms0 ms0.3 ms309641103
DynamicTheme switchMaster CSS runtime60.8 ms0.1 ms10.1 kB0.5 ms0 ms0.3 ms310641103
DynamicTheme switchMaster CSS progressive62.6 ms0.2 ms660.1 kB0.5 ms0 ms0.3 ms311641113
DynamicTheme switchTailwind CSS static62.3 ms0 ms00 kB0.3 ms0 ms0.3 ms309641103
DynamicViewport resizeMaster CSS static112.7 ms0 ms00 kB0.4 ms0.7 ms0.7 ms309641103
DynamicViewport resizeMaster CSS runtime112.1 ms0 ms00 kB0.3 ms0.7 ms0.7 ms310641103
DynamicViewport resizeMaster CSS progressive110.1 ms0 ms00 kB0.3 ms0.7 ms0.7 ms311641113
DynamicViewport resizeTailwind CSS static112.5 ms0 ms00 kB0.6 ms0.7 ms0.8 ms309641103
DynamicMutation cleanup cycleMaster CSS static329.4 ms0 ms00 kB1.1 ms1.5 ms3.2 ms3091921103
DynamicMutation cleanup cycleMaster CSS runtime329.9 ms0.6 ms30.1 kB1.6 ms1.8 ms3.1 ms3101921103
DynamicMutation cleanup cycleMaster CSS progressive330.2 ms0.5 ms680.1 kB1.6 ms1.6 ms2.8 ms3111921113
DynamicMutation cleanup cycleTailwind CSS static328.3 ms0 ms00 kB1.1 ms1.3 ms3.3 ms3091921103
DashboardExisting class toggleMaster CSS static61.3 ms0 ms00 kB0.5 ms0 ms0.6 ms9811601103
DashboardExisting class toggleMaster CSS runtime62.8 ms0 ms00 kB0.5 ms0 ms0.5 ms9821601103
DashboardExisting class toggleMaster CSS progressive60.3 ms0 ms00 kB0.5 ms0 ms0.5 ms9831601113
DashboardExisting class toggleTailwind CSS static60.5 ms0 ms00 kB0.7 ms0 ms0.7 ms9811601103
DashboardDOM append/removeMaster CSS static61.1 ms0 ms00 kB0.4 ms0.1 ms0.3 ms981801103
DashboardDOM append/removeMaster CSS runtime60.9 ms0 ms00 kB0.4 ms0.1 ms0.3 ms982801103
DashboardDOM append/removeMaster CSS progressive61.1 ms0 ms00 kB0.4 ms0.1 ms0.3 ms983801113
DashboardDOM append/removeTailwind CSS static63.4 ms0 ms00 kB0.5 ms0.1 ms0.4 ms981801103
DashboardTheme switchMaster CSS static61.2 ms0 ms00 kB0.5 ms0 ms0.5 ms9811601103
DashboardTheme switchMaster CSS runtime61.2 ms0.2 ms10.1 kB0.8 ms0 ms0.5 ms9821601103
DashboardTheme switchMaster CSS progressive63.1 ms0.2 ms660.1 kB0.8 ms0 ms0.5 ms9831601113
DashboardTheme switchTailwind CSS static64 ms0 ms00 kB0.6 ms0 ms0.7 ms9811601103
DashboardViewport resizeMaster CSS static113.4 ms0 ms00 kB0.4 ms1.9 ms1.4 ms9811601103
DashboardViewport resizeMaster CSS runtime110.7 ms0 ms00 kB0.3 ms1.8 ms1.2 ms9821601103
DashboardViewport resizeMaster CSS progressive110.3 ms0 ms00 kB0.3 ms1.9 ms1.3 ms9831601113
DashboardViewport resizeTailwind CSS static110.3 ms0 ms00 kB0.5 ms1.8 ms1.5 ms9811601103
Stress DOMExisting class toggleMaster CSS static63.5 ms0 ms00 kB1.7 ms0 ms0.8 ms3,6216001103
Stress DOMExisting class toggleMaster CSS runtime61 ms0 ms00 kB1.8 ms0 ms0.7 ms3,6226001103
Stress DOMExisting class toggleMaster CSS progressive63.6 ms0 ms00 kB1.8 ms0 ms0.8 ms3,6236001113
Stress DOMExisting class toggleTailwind CSS static61.6 ms0 ms00 kB2.2 ms0 ms1 ms3,6216001103
Stress DOMDOM append/removeMaster CSS static62.9 ms0 ms00 kB0.6 ms0.1 ms0.5 ms3,6211601103
Stress DOMDOM append/removeMaster CSS runtime60.6 ms0 ms00 kB0.6 ms0.1 ms0.6 ms3,6221601103
Stress DOMDOM append/removeMaster CSS progressive63.2 ms0 ms00 kB0.5 ms0.1 ms0.5 ms3,6231601113
Stress DOMDOM append/removeTailwind CSS static63.4 ms0 ms00 kB0.7 ms0.1 ms0.6 ms3,6211601103
Stress DOMViewport resizeMaster CSS static112.8 ms0 ms00 kB0.6 ms6.5 ms2.7 ms3,6216001103
Stress DOMViewport resizeMaster CSS runtime108.1 ms0 ms00 kB0.4 ms6.2 ms2.7 ms3,6226001103
Stress DOMViewport resizeMaster CSS progressive112.4 ms0 ms00 kB0.4 ms6.1 ms2.7 ms3,6236001113
Stress DOMViewport resizeTailwind CSS static110.3 ms0 ms00 kB0.6 ms6 ms2.9 ms3,6216001103
Stress DOMMutation cleanup cycleMaster CSS static262.8 ms0 ms00 kB1.8 ms2.7 ms7.7 ms3,6214801103
Stress DOMMutation cleanup cycleMaster CSS runtime262.3 ms0.3 ms30.1 kB5.9 ms7.4 ms7.4 ms3,6224801103
Stress DOMMutation cleanup cycleMaster CSS progressive261.8 ms0.5 ms680.1 kB6.2 ms7.6 ms7.4 ms3,6234801113
Stress DOMMutation cleanup cycleTailwind CSS static263.1 ms0 ms00 kB2 ms2.6 ms7.5 ms3,6214801103
支持的测试用例、模式与场景组合的完整交互成本数据。

解读:运行时与渐进式模式应分两层阅读:先看用户可见的变更就绪,再看运行时样式表工作。就绪时间包含测试框架等待帧,且各模式几乎相同,因此模式额外增加的成本应比较运行时变化处理与样式重计算。规则差量计算运行时公开快照中的规则。渐进式页面延迟启动引擎时,快照没有规则;第一个不在水合数据中的类名启动引擎后,会把服务器渲染规则采用到状态中,因此该次交互的差量还计入采用的规则。请比较运行时变化处理与样式重计算,评估 CSSOM 成本。

限制:这些数值不测量路由过渡、HMR、开发流程、CDN 行为、Firefox、WebKit,或公开真实应用的差异。

#浏览器生命周期与长时间会话

回答的问题:每次记录的五分钟会话累积多少渲染与运行时工作?

生命周期测试组比较 Master CSS 静态、运行时与渐进式配置,以及 Tailwind CSS 静态对照组。下方图表选用五分钟长时间会话场景。每种模式只有一次实测运行;单个样本的中位数就是那次观察,不能证明可重复性。

表格经过时间涵盖完整脚本会话与最后等待稳定的帧。源指标名为 inp-style-interaction-ms,但此场景设计上就约为五分钟,并不测量单次输入延迟或 Web Vitals INP。

指标值详细信息
快照变体数64 4 种模式的 7 个场景
已记录模式数4/4 良好分段的五分钟长时间会话报告
浏览器Chromium 156.0.8078.4 本地跟踪测量使用的无头浏览器
长时间会话样本数1 已提交证据中,各模式实测的五分钟轮数
计算样式检查4/4 良好computed-style-valid = 1 的五分钟证据变体
渐进式 CSS 采用1/1 良好Master 渐进式长时间会话证据变体
浏览器生命周期证据的覆盖范围与正确性检查。

样式重计算

五分钟运行 · n=1
Master CSS 静态
6,644 ms
Master CSS 运行时
5,047.7 ms
Master CSS 渐进式
8,913.1 ms
Tailwind CSS 静态
12,181.7 ms

布局

五分钟运行 · n=1
Master CSS 静态
1,307.4 ms
Master CSS 运行时
1,119 ms
Master CSS 渐进式
1,659.5 ms
Tailwind CSS 静态
1,718.1 ms

绘制

五分钟运行 · n=1
Master CSS 静态
5,760.7 ms
Master CSS 运行时
4,698.8 ms
Master CSS 渐进式
7,194.2 ms
Tailwind CSS 静态
6,998.8 ms

长任务数

五分钟运行 · n=1
Master CSS 静态
0
Master CSS 运行时
1
Master CSS 渐进式
0
Tailwind CSS 静态
0

CSSOM 规则数

五分钟运行 · n=1
Master CSS 静态
98
Master CSS 运行时
59
Master CSS 渐进式
59
Tailwind CSS 静态
112

运行时变化处理工作

五分钟运行 · n=1
Master CSS 静态0 个规则
0 ms
Master CSS 运行时78 个规则
211.3 ms
Master CSS 渐进式78 个规则
312.6 ms
Tailwind CSS 静态0 个规则
0 ms
各模式单次五分钟运行中,观察到的浏览器渲染与运行时工作。
模式会话经过时间样式重计算布局绘制长任务数CSSOM 规则数运行时规则数运行时变化处理JS 堆内存计算样式渐进式已采用 CSS样本数
Master CSS static300,115.9 ms6,644 ms1,307.4 ms5,760.7 ms09800 ms1,796.3 kB101
Master CSS runtime300,102.5 ms5,047.7 ms1,119 ms4,698.8 ms15978211.3 ms5,358 kB101
Master CSS progressive300,119.9 ms8,913.1 ms1,659.5 ms7,194.2 ms05978312.6 ms4,808.1 kB111
Tailwind CSS static300,117.2 ms12,181.7 ms1,718.1 ms6,998.8 ms011200 ms1,479.7 kB101
每种模式的完整五分钟长时间会话证据。

解读:比较总样式重计算与各模式增加的运行时变化处理。每种模式仅运行一次,无法证明稳定加速。对布局、绘制、响应能力或整体性能下结论前,请先在同一台机器上比较重复运行。

限制:除非 Chromium 提供稳定的跟踪指标,选择器匹配时间仍根据 CSSOM/规则量加上样式重计算推断。只有收集方法稳定到能在相同浏览器版本复现时,才报告 CSSOM 内存与 GC 压力。


#数据来源

图表读取已提交至 benchmarks/**/snapshot.json 与 benchmarks/browser-lifecycle/long-session-evidence.json、日期为 2026 年 11 月 4 日的快照。测试用例、指标类别、发布规则、记录命令与验证步骤见基准测试 README。复现结果需要匹配的源代码修订版与锁文件,而不只是安装当前软件包。