多情形历轮性能对照(2026-11-03)
每个历史点并排比较五种完整负载,不把冷/热编辑序列当作历史版本,也不复用旧报告的时间。
本轮完成 18 个点 × 5 个负载 × 5 轮 = 450 次普通 CLI 测量;每格完整预热与验证,共 90 格,另有 85 次独立探针。图中每个历史点恰有五条,可切换耗时、RSS、统一/独立刻度,以及相对 Tera 的比例。
主要发现
XIV:Tera 6.402 → 当前 3.620 s,减少 43.5%。模板、Python、语义共享优化的收益仍然可见。
新负载揭示了资源重构的明显退化,不能只用生产 XIV 的曲线概括所有情形:
情形 | 环境句柄版 s | 资源重构版 s | 后者 / 前者 |
|---|---|---|---|
完整 XIV DB | 3.2685 | 3.6153 | 1.11× |
无模块正文 | 0.4820 | 1.9431 | 4.03× |
共享组件图 | 1.0241 | 6.8112 | 6.65× |
每页私有模块图 | 1.0265 | 39.7276 | 38.70× |
宽导出/通配绑定 | 3.1272 | 7.5157 | 2.40× |
comemo 在宽导出/通配绑定情形中有明确收益:off 7.368 → compile 5.641 → both 5.390 s,off→both 减少 26.8%;RSS 1080.3 → 216.4 MiB。绑定缓存在仅编译缓存之外再减少约 4.4% wall,五轮范围不重叠。
共享组件图 off→both 约减少 3.8%;私有图没有首轮跨页编译复用,5120 次编译仍全部执行,没有明显整站收益。XIV 和无导入负载不发生模块编译,不能评价编译缓存的潜在收益。
当前仍未追回资源重构引入的人工情形退化。探针将主要增量定位到分析/求值,而非模板或发布:当前私有图一次探针约 28.76 s analyze、10.25 s evaluate,模板约 1.4 ms。探针只有一次,用于量级定位,不替代五轮 CLI 排名。
代码证据:
ResourceSession.source_bytes在每次读取(包括缓存查询之前)调用validate;validate遍历全部已观察文件与 kinds,FsReader.revision会重新打开文件并取 metadata,evaluate 前后还全量校验。私有模块图不断扩大观察集合,是明确的后续排查点。没有单独消融这些检查,不声称它解释了全部增量;本轮未移除授权/版本检查、未修改引擎。前一次 MemoryResources 组装例不能代替文件系统 CLI 历轮曲线:这里测到了物理输入版本检查与完整发布,兼容样例的参数类型也不同。两批绝对秒数不相减。
wall 中位数(s)
对照点 | 完整 XIV DB | 无模块正文 | 共享组件图 | 每页私有模块图 | 宽导出/通配绑定 |
|---|---|---|---|---|---|
handlebars · 存档 Handlebars 优化基线 | 6.8533 | 0.5035 | 1.0559 | 1.0718 | 3.1816 |
tera · Tera 2 | 6.4022 | 0.5057 | 1.0614 | 1.0732 | 3.1884 |
renderer · 直接 Renderer | 6.0684 | 0.4972 | 1.0515 | 1.0623 | 3.1829 |
html-shared · 共享 HTML targets | 5.6795 | 0.4965 | 1.0474 | 1.0604 | 3.1533 |
borrowed · 去中间 JSON | 5.0524 | 0.4924 | 1.0468 | 1.0575 | 3.1579 |
context · 共享 Tera 值 | 4.7943 | 0.4881 | 1.0370 | 1.0487 | 3.1697 |
json-batch · Python 批量紧凑编码 | 4.1943 | 0.4910 | 1.0444 | 1.0465 | 3.1850 |
catalog · 目录四字段摘要 | 4.0348 | 0.4893 | 1.0380 | 1.0471 | 3.1652 |
semantic · 共享语义定义 | 3.6216 | 0.4851 | 1.0255 | 1.0331 | 3.1325 |
environment · 复用环境句柄 | 3.2685 | 0.4820 | 1.0241 | 1.0265 | 3.1272 |
resources · 资源/共享值/Data | 3.6153 | 1.9431 | 6.8112 | 39.7276 | 7.5157 |
modules · 模块分层 | 3.5924 | 1.9243 | 6.7437 | 39.0030 | 7.3725 |
listen · CLI listen 控制 | 3.6203 | 1.9389 | 6.7564 | 39.5798 | 7.3787 |
memo-off · comemo ablation:off | 3.6204 | 1.9215 | 6.7747 | 39.2709 | 7.3683 |
memo-compile · comemo ablation:compile | 3.6246 | 1.9317 | 6.6349 | 39.5528 | 5.6410 |
memo-both · comemo:both | 3.6184 | 1.9362 | 6.5174 | 39.4480 | 5.3901 |
head · 2468767:移除模板 Markdown helper | 3.6033 | 1.9433 | 6.5329 | 39.4297 | 5.3801 |
current · 当前已提交版本 | 3.6202 | 1.9113 | 6.4449 | 39.0049 | 5.3802 |
峰值 RSS 中位数(MiB)
对照点 | 完整 XIV DB | 无模块正文 | 共享组件图 | 每页私有模块图 | 宽导出/通配绑定 |
|---|---|---|---|---|---|
handlebars | 2577.2 | 100.4 | 180.6 | 183.2 | 910.2 |
tera | 2432.7 | 100.4 | 179.2 | 181.6 | 908.8 |
renderer | 2433.1 | 100.4 | 179.1 | 181.7 | 908.9 |
html-shared | 2433.1 | 100.4 | 179.3 | 182.1 | 909.2 |
borrowed | 2004.7 | 100.4 | 175.4 | 177.9 | 904.2 |
context | 1524.5 | 100.4 | 172.0 | 174.5 | 899.5 |
json-batch | 1524.3 | 100.4 | 171.9 | 174.5 | 899.5 |
catalog | 1431.9 | 100.4 | 171.8 | 174.5 | 899.4 |
semantic | 780.0 | 100.4 | 165.7 | 168.2 | 893.7 |
environment | 780.1 | 100.4 | 165.5 | 168.2 | 893.7 |
resources | 824.8 | 100.4 | 220.2 | 227.9 | 994.9 |
modules | 822.1 | 100.4 | 235.8 | 243.8 | 1080.1 |
listen | 822.0 | 100.4 | 236.0 | 243.9 | 1080.2 |
memo-off | 822.3 | 100.4 | 236.0 | 244.2 | 1080.3 |
memo-compile | 822.2 | 100.4 | 164.8 | 244.9 | 399.3 |
memo-both | 822.1 | 100.4 | 146.0 | 248.2 | 216.4 |
head | 822.3 | 100.4 | 145.8 | 248.1 | 216.3 |
current | 822.2 | 100.4 | 146.6 | 249.1 | 216.9 |
comemo 实际工作次数(编译 / 绑定)
模式 | 完整 XIV DB | 无模块正文 | 共享组件图 | 每页私有模块图 | 宽导出/通配绑定 |
|---|---|---|---|---|---|
memo-off | 0 / 51739 | 0 / 521 | 5192 / 5713 | 5120 / 5641 | 3072 / 3593 |
memo-compile | 0 / 51739 | 0 / 521 | 18 / 5713 | 5120 / 5641 | 6 / 3593 |
memo-both | 0 / 0 | 0 / 0 | 18 / 139 | 5120 / 5632 | 6 / 11 |
current | 0 / 0 | 0 / 0 | 18 / 139 | 5120 / 5632 | 6 / 11 |
方法与边界
XIV 使用完整固定 CSV(51,225 详情 + 513 目录 + 首页),沿原先时间线切换三档 Python 脚本。四个人工站点均为 512 详情 + 8 目录 + 首页,不随历史版本改变。
XIV 大量页面源由 prepare 返回为虚拟文档,人工站点实际从磁盘发现页面和模块文件。物理观察集合大小不同是负载差异之一,不可仅按页数跨情形推断每页效率。
人工站点的整数在输入边界显式格式化为 String,Bool 条件分支保留;没有使用早期不存在的 str、数组方法、for 或 Data API。这是跨版本兼容的新负载,未混入旧模块样例秒数。
共享/私有图使用相同内容与 13 字段组件,私有图每页不同源身份;宽导出包含四个 64 函数库、通配 facade 及八套 32 行布局,所有 256 个标签函数均实际使用,没有纯粹填充的未调用函数。
每次普通 CLI 是新进程,计时含启动、输入、完整 SSG、模板、发布写盘和旧输出清理;各负载采用固定输出路径。版本/情形轮转并反序交错,不与编译或 HTML 验证并发。
CPU 8,温文件缓存,不 fsync,不锁频;release debug=0、incremental=0、jobs=2。wait4 RSS 是进程高水位,不是进程树同时内存总和。小差异不作独立优化结论。
复用的是原批次经过 SHA-256 核对、独立 target 构建的历史二进制与源码,不是旧计时。早期版本保留当时的 publication 路径补丁;Handlebars 是未恢复完整未提交源码的存档补充参照。
当前点固定已提交
083ff6cd5eecae00a085a113a211f0f314ba0ae3,未包含checkout-start.diff中的 SSG 宿主政策修改。资源版本只在临时 CLI 显式统一 requests=1,000,000,仍正常读取、授权、版本检查和计费,未改生产源码。Python 两步只影响 XIV,其余情形的引擎及输入完全相同,是控制点;comemo off/compile 是同一提交的消融,不是不同历史提交。
90 格均检查完整页数、全部字段/目录行、物品路由及本地链接。所有 Tera 及后续产物逐文件字节一致,Handlebars/Tera 的 HTML 解析语义与非 HTML 字节一致。85 次探针也与相应普通产物逐文件一致。
探针每格一次,只用于量级定位和确定性工作次数验证。普通 CLI 排名使用五轮中位数;完整样本、min/max 及包含式阶段存入 JSON,不重复累加父子阶段。
新增 5 项矩阵/图表回归,连同既有工具共 16 项 Python 回归通过;图表 JS 语法检查通过,实际浏览器检查了历史点选择、资源重构跳转、独立刻度与 RSS 切换。
结果与复现
结果目录:/tmp/opencode/notist-history-matrix-20261103。
dashboard.html:交互分组图,按情形开关、耗时/RSS、统一/独立刻度和相对 Tera。history-wall.svg、history-rss.svg:完整、不折叠的静态分组图。summary.csv、summary.json:90 格汇总、范围及原始样本;runs.json:450 次 CLI;probes.json:85 次探针。manifest.json、validation.json、validation-complete.json、inventories/、源码/二进制副本和 stdout/stderr:来源与完整性证据。
PYTHONDONTWRITEBYTECODE=1
方法说明与图表模板:tools/HISTORY_MATRIX_PROFILE.md、tools/history_matrix_chart.html。准备/构建/验证/计时/探针/报告支持分开执行;复用原条件可续跑,改变条件需用新结果目录。