Notist
On this page
  1. 十轮内性能优化实验(2026-11-05)
  2. 测量约束
  3. 新基线校准(不计优化轮数)
  4. 第 1 / 10 轮:小字典按有序 entries 直接查找
  5. 验证夹具的失败与处理
  6. r01 结论:接受(第 1 / 10 轮已完成)
  7. 第 2 / 10 轮:相同的 checked/resolved 实例共享身份存储
  8. r02 结论:拒绝(第 2 / 10 轮已完成)
  9. 第 3 / 10 轮:有界固定常用字典键共享
  10. r03 结论:拒绝(第 3 / 10 轮已完成)
  11. 第 4 / 10 轮:小字典首槽紧凑分配,旧预算容量独立保留
  12. r04 结论:接受(第 4 / 10 轮已完成)
  13. 第 5 / 10 轮:扩展构造描述移出公共节点枚举布局
  14. r05 结论:拒绝(第 5 / 10 轮已完成)
  15. 第 6 / 10 轮:借用已有函数身份作热路径分派
  16. r06 结论:拒绝(第 6 / 10 轮已完成)
  17. 第 7 / 10 轮:复用已消费的 forest 缓冲区
  18. r07 结论:拒绝(第 7 / 10 轮已完成)
  19. 第 8 / 10 轮:原生内容构造不创建立即拆除的内层 Arc
  20. r08 结论:拒绝(第 8 / 10 轮已完成)
  21. 第 9 / 10 轮:在 SSG 阶段边界结束已死元数据的生命周期
  22. r09 结论:拒绝(第 9 / 10 轮已完成)
  23. 第 10 / 10 轮:按已知文档数量预分配 SSG 批次容器
  24. r10 结论:拒绝;全部十轮已结束
  25. 最终交付:十轮结束,目标未达到

十轮内性能优化实验(2026-11-05)

用户在 12:00 截止交付后重新授权:取消时间限制,最多 10 轮优化实验,不是最多十次构建测量。每个最终版本仍须至少六个固定条件的新进程样本。其它语言/wire/权威树/挂载/来源顺序/资源授权/逻辑预算、完整消费者输入、测试和归档约束全部保留;不自动提交或推送。

本次独立归档目录为 /tmp/opencode/notist-ten-rounds-20261105/。上一截止实验目录及日志不覆盖、不重写,其收益不重复计入本次。r00 冻结当前完整未提交工作区,含上一阶段已验证的实例身份共享、来源链 COW、已渲染树生命周期与隐藏依赖 watch 修复;不是干净 HEAD。确认所有 Rust/Cargo 配置/依赖锁与上一阶段 verified 冻结源码相同,复用其普通 default-feature release 二进制,指纹在本次 manifest。冻结 474 个初始源码/工具/文档文件、79,362 个完整消费者输入文件,并复核输入指纹与之前完全相同。

测量约束

无时间截止的独立驱动为 tools/profile_ten_rounds.py;实验序号由 manifest 的 experiments 记账,超过十轮拒绝开始新实验。主测量每次清空实验输出、启动全新普通 release CLI,以 Popen 前至 wait4 返回计 wall,含扩展、组装、发布、析构和退出;不预热应用结果缓存,文件系统暖缓存由固定的输入指纹扫描建立并记录。输出复位和校验属于测量夹具,不把 CLI 自身工作移出计时。每次必须匹配全部 78,004 个输出文件 SHA-256,包含 51,739 HTML 页。

RSS 为 wait4 内核高水位 × 1024 字节,包含已等待子进程的保守最大值,不是稀疏采样或各进程内存之和。不使用插桩耗时计算加速;独立 instrumented snapshot 的结构计数、容量和完整语义指纹只作诊断。编译、其它 profile 和主测量不并行。保留全部慢样本、失败、退出状态和负载信息;不相加跨批收益。300MB 严格指 300,000,000 字节。

新基线校准(不计优化轮数)

r00 六次首次构建 wall 为 12.0191 / 11.3250 / 11.5528 / 16.7945 / 11.4153 / 11.5504s,中位数 11.551571s;最大内核峰值 4,842,844,160 字节。16.7945s 慢样本保留,未剔除。全部完整输出一致。它是本次起点的校准,不与上阶段数字相减宣称新收益;候选仍需独立同批 A/B。

第 1 / 10 轮:小字典按有序 entries 直接查找

新驻留结构诊断在全部求值完成时遍历全部权威树:

  • 51,739 文档、4,273,237 节点,Item 为 192 字节;子节点 Vec 容量对应 813,281,472 字节。

  • 按底层 Arc 去重后,空 Dict 1,852,959 个、1 项 Dict 2,369,208 个、2 项 Dict 153,680 个;本负载没有更宽的最终字典。

  • DictStorage 结构字节总计 350,067,760;entries 容量字节 645,859,328;另有 2,676,568 个 BTreeMap 索引项。这些是结构/容量计数,不是精确堆占用或 RSS,观察器本身有额外 HashSet。

假设:对最多 8 项的字典直接顺序查找 entries,避免为 1–2 项分配独立 BTreeMap 叶;第 9 项开始构建索引,宽字典维持原查找路径。字段插入顺序、重复反序列化键的首次命中/首次修改、全部 wire 条目及 COW 独立性不变。只改索引策略,不改 Vec 容量或 DictStorage 布局。

预算特别保留:resident proxy 仍按原来“去重后的索引键数 × 128”计费,即使物理索引不再存在;entries.capacity、DictStorage 的 size_of 和 DataRetention 计费不变。不把物理内存优化变成更宽松的逻辑额度。新增阈值跨越/Unicode/顺序/COW、旧预算公式、重复键 wire 往返和修改回归。

两组预实验全部输出一致,候选均更快,遂进入独立正式六组交替 A/B:r00 中位数 11.396844s、r01 10.766556s;最大内核峰值分别 4,842,328,064 / 4,118,036,480 字节,六对候选全部更快。保留 baseline 的 15.2416s 慢样本,不混入之前校准/预实验求中位数,不相加旧批收益。完整 78,004 文件 SHA-256 每次一致。

默认 749 项、全特性 758 项(各 74 个 test target),根库/core/pipeline 无默认特性 509 项(50 targets)全部通过、零警告,包含 LSP 功能回归。四组普通二进制完整 analysis/evaluation JSON 对照通过。

独立诊断副本逐页流式序列化完整 analysis root/diagnostics/sources、evaluation root/diagnostics/sources/logical dependencies,以及 SSG 准备后的完整 root/page/anchors,另记录整站 observed/logical dependencies。每版 103,479 帧、5,239,306,580 个规范 JSON 字节全部参与 SHA-256;逐帧证据文件一致,汇总指纹为 5a0d7f515fc62ac67c886e8f9ff25e34cc0cd408d297afa1d99f6d80ac912de9。不是只数节点或只比较四个小 fixture;不把该插桩耗时/内存用于收益。主流程没有这些观察器。

当前状态:完整 serve 正反顺序对照和逐修订依赖对照尚未完成,因此未标记该轮验收通过;目标 3s/300,000,000 字节仍未达到。

验证夹具的失败与处理

全 tools Python 测试 40 项中 4 项失败:三个历史 SSG 插桩器的 let routes = crate::extensions::prepare 锚点与当前源码不符,来源文本观察器的 origin.expansion.extend_from_slice(locations) 也已被上一阶段 SourceChain 替换。新十轮工具专项 2 项通过。保留全量失败日志,不跳过或把这些旧工具声称为通过;r00 纯源码副本缺少 .git,直接复跑三个 Git archive 型测试会先失败于 Git 前置条件,不能冒充等价复现。SourceText 锚点失败已在 r00 直接复现,另外三项继续按只读 Git 对象库与冻结工作树核对。

普通 serve 第一组 control/candidate 各九步均完成(初始、正文编辑、错误、修复、增、删、共享模块、隐藏数据、静态资产),各成功修订全部输出与独立冷构建相同,错误诊断完整 detail 与冷 stderr 完全一致。反向组的初始冷构建失败于 ENOSPC;strace 单独复现到私有暂存目录创建 PNG 文件返回 ENOSPC。整个未完成的组保留,不与新组混算。

系统 Btrfs 数据仍有约 83GB 空闲,但全部设备块已分配,Metadata,DUP 已用约 95.6%;连新建小诊断日志一度也失败。只清理本次外部 Cargo 可重建本地产物(1,241 文件、约 9.0GiB),保存所有普通/诊断二进制、源码及测试日志。再将本次三个可丢弃 serve 副本作逐文件 SHA-256 核对,保存完整冻结基线引用和全部变化字节/删除清单;冷产物核对已有完整输出 inventory 后才删除其重复副本。完整基线、增量字节、所有修订 inventory、失败日志均保留。元数据降到约 92.7%,未执行全盘 balance、未删除系统快照或既有用户工作。

新独立普通 serve 组改为相同的原生文件系统完整副本、每个进程退出后才归档并回收自己的夹具,使元数据占用有界;每次仍是完整输入和全部字段/资产,未改用 tmpfs、硬链接或缩小负载,也没有把应用自己的组装/发布/清理挪出测量。新组以独立标签记录 AB/BA 顺序,不覆盖前述失败或未完成数据。

有界普通 AB/BA 四进程均已完成全部九步,完整 HTTP 输出/错误 detail 与同修订冷构建一致。独立 observed-only 诊断两版各九步也已完成:每个连续 serve 修订的完整 observed/logical 依赖集合均与对应冷构建一致,证据为 r01-serve-dependencies.json 及全部逐步原始日志。

普通 serve 审计仍保留错误场景的回退标记:最初两样本 build 中位数 control 11,265ms、candidate 11,770ms;不能因为其它步骤较快就忽略。新增独立三组交替新进程复测,严格重现 initial → content-edit → error 前缀,检查精确两条预期错误、51,739 页、revision 2,另以 /proc 记录进程及已等待子进程 CPU 增量。复测与原样本分开分析,未完成前不接受 r01,也不开 r02。

四个历史 Python 失败已用冻结 r00 工作树和真实只读 Git 对象库等价复现:GIT_WORK_TREE=r00、GIT_DIR 指向仓库、GIT_OPTIONAL_LOCKS=0,不修改索引或仓库。三项同样失败于过期 let routes 锚点,另一项同样失败于旧 SourceChain 锚点;原日志为 logs/r00-four-legacy-readonly-git.log。这是已存在失败的证据,不将整套 Python 测试记作通过。

r01 结论:接受(第 1 / 10 轮已完成)

独立错误复测三组均完成完整输出/精确诊断核对。control build 为 10,633 / 13,011 / 13,047ms,candidate 为 10,009 / 10,870 / 11,968ms,三对候选都更快;独立中位数为 13,011 → 10,870ms。编辑到事件独立中位数为 13.425020 → 11.133992s,三对均更快;进程及已等待子进程 CPU 独立中位数为 10.60 → 10.46s。不将新旧批次合并,不删除原两样本回退标记;原回退未在独立复测重现。

最终审计 r01-analysis.json 无未解决 serve 回退。全部接受门禁通过,manifest 将 r01 标记 accepted;无提交或推送。普通六组首次构建仍是本轮唯一正式收益批次:11.396844 → 10.766556s、最大 RSS 4,842,328,064 → 4,118,036,480 字节。这只是相对起点的进展,绝非达到 3s/300MB。随后运行独立 r01 驻留剖析,选择下一轮前不预先改生产代码。

第 2 / 10 轮:相同的 checked/resolved 实例共享身份存储

新 r01 驻留剖析确认最终字典物理索引数为零,节点数、子节点容量、所有字段/属性分布不变。另有 4,168,383 份去重实例存储:FunctionInstance 结构本体合计 300,123,576 字节、身份字符串容量 53,236,392 字节、参数 Vec 容量 22,278,384 字节。4,116,476 个节点有 instance,也有相同数量 target,但同节点二者共享存储数为零。直接字符串字段去重后 payload 仅约 10MB,不应把数 GB RSS 主要归因于正文文本。

假设:成功内容调用若 resolved target 与边界上已有 checked instance 完全相同,可令 target 克隆已有 Shared,而不是另外分配相同值。只允许全部 comptime 参数都是 Type(含空参数),其结构相等为精确值相等;数据参数统一保持旧路径,避免浮点 signed zero/NaN 等 PartialEq 与 wire 身份不一致。FunctionId、参数数量与嵌套 Type 都须一致;不同替换目标、缺失原 instance 仍保留完整新 target。错误恢复路径不变。

不跨节点查找、不 intern、不缓存或跳过执行、不改变边界/来源链/children/预算计费。共享仍是既有 Shared 的不可变所有权优化,修改走 COW。新增相同身份 Type/空参数、目标模块/名称变化、参数变化、缺失 instance、正负零/NaN 位模式、普通数据参数和两侧独立修改测试;专项测试通过。正在冻结候选并跑独立普通 A/B 预实验;尚未接受。

独立两对预实验全部完整输出哈希一致,wall 中位数 r01 12.777770s、r02 12.143749s,两对候选都更快;最大 RSS 4,116,000,768 → 3,421,986,816 字节。当前绝对耗时高于 r01 历史正式批次,因此只作本批对照,不把历史 10.766556s 与本批相减。已启动新六组 r01/r02 交替正式批次;测试/插桩剖析不与其并行。

正式六组同批 r01/r02 已完成,全部六对候选更快且完整 78,004 输出文件逐次一致。wall 中位数 12.391252 → 11.847858s,最大内核峰值 4,116,717,568 → 3,422,924,800 字节。不把预实验或其它批次混入。随后串行启动 Rust 三矩阵、普通 public JSON、全站语义、有界 AB/BA serve 和每修订依赖验证;没有完成这些门禁前 r02 保持 started。

r02 Rust 默认 751、全特性 760、无默认特性 511 项通过,零警告,包含 LSP。四组普通 analysis/evaluation JSON 一致;完整全站语义仍为 103,479 帧、5,239,306,580 规范 JSON 字节,证据指纹与 r01/r00 相同。复用控制组既有语义证据前,核对其完整普通/诊断源码、诊断二进制和证据文件指纹;不覆盖历史运行,也不混用其计时。

普通有界 AB/BA 四进程、两版逐修订 observed/logical 依赖九步均完成,成功修订全部 HTTP 输出和错误诊断与同修订冷构建一致。耗时审计标记模块、数据、资产更新回退,build 中位数分别 10,544 → 10,876.5ms、10,333 → 10,765ms、10,619.5 → 10,833.5ms;编辑到事件也同向。不能以首次构建收益抵销这些标记。启动独立三组交替新进程的完整九步复测,每步加外部 /proc 进程及已等待子进程 CPU 增量,仍逐次完整冷构建/输出核对。原批次保留,新的中位数单独分析;若回退重复则拒绝本轮,不开始 r03。

r02 结论:拒绝(第 2 / 10 轮已完成)

独立完整九步三组复测全部正确性核对通过,但三个原标记场景均重现更慢:模块更新 build 中位数 10,914 → 12,060ms、数据更新 10,625 → 11,950ms、资产更新 10,770 → 11,692ms,编辑到事件也同向。各三对候选都更慢;CPU 独立中位数分别 11.27 → 12.41s、10.97 → 12.29s、11.10 → 12.00s,不能仅归为 wall 调度抖动。未做堆归因剖析,不猜测回退机制。

拒绝 r02,全部首次构建收益、正确性和回退证据保留。仅删除本轮 eval.rs 中 target 复用 helper、调用和两项专项测试,核对工作树生产文件与已接受 r01 完全相同后由驱动 resolve rejected;原有脏工作及 r01 小字典优化未动,无提交/推送。r03 尚未开始,先对 r01 做新的独立容量/键分布诊断,不复用或覆盖旧剖析文件。

第 3 / 10 轮:有界固定常用字典键共享

新独立 probe-r01-layout 确认 2,522,888 个非空 Dict 的容量均为 4,645,859,328 entries 容量字节未变。键分布中 text 有 2,058,753 次,target 205,925,level 102,966,id 102,974,description 102,451,source 51,738,index 51,225,另有 header/class/title/aria-label;总索引项数仍为零。

选择较小且计费透明的独立实验:只为这十一种固定名称保留一个进程内 OnceLock 数组,Dict::insert 新键使用既有 Text 的 Arc 克隆,其余任意键保持独立所有权。不是按输入增长的驻留表,不保存用户值、求值结果、文档或挂载。字典对象、entries 容量、字段值、布局和所有 resident/retention 的逐键 len+16 计费不变,序列化仍是完整有序键值数组;重复键仍首次 lookup/update,反序列化路径不改变。

新增固定词汇共享字节但不共享字典/值、COW 独立修改、未知/Unicode/大小写/空键不进入驻留表测试;core 全特性通过。冻结并编译普通候选,启动独立两组 r01/r03 预实验;尚未接受,不使用已拒绝 r02 的生产改动或收益。

r03 结论:拒绝(第 3 / 10 轮已完成)

普通两对预实验全部输出一致,但候选两次都更慢,wall 中位数 12.087289 → 12.294793s;最大 RSS 4,117,295,104 → 4,019,396,608 字节。虽然节省约 98MB,时间指标未改善,提前拒绝,不追加完整验收,也不声称回归/serve 已通过。只撤回本轮 shared.rs 键共享及两项测试,resolve 前核对全部生产文件与 r01 一致,保留冻结候选源码/二进制、专项测试和全部测量。

第 4 / 10 轮:小字典首槽紧凑分配,旧预算容量独立保留

依据同一新容量剖析中 2,369,208 个 len=1/cap=4 字典(空余三槽约 455MB),首个新条目使用 reserve_exact(1),第二个及以后仍走普通 Vec 扩容。不同于 r02/r03,本轮不引入额外对象间的所有权共享。

为保留原预算,不用实际容量直接降低计费:存储 budget_capacity 影子,原始首次 push 记作 4,此后在原容量满时倍增;COW clone 影子与旧 Vec::clone 一样变为 len,缓存 metrics 仍原样克隆,插入才失效;反序列化从原 Vec 的真实容量初始化影子。字段键/值/顺序、重复键首次命中、wire 和宽字典行为不变。

为给影子元数据腾出空间,将只在宽字典才存在的 BTreeMap 放在 Option<Box<_>> 中;小字典物理结构不增大。用保留的原始 Vec/BTreeMap/OnceLock 布局计算 budget_bytes,metrics 与 DataRetention 都仍按原布局代理计费,不因物理结构缩小放宽额度。新增与真正旧 Vec 扩容/clone 容量的逐步比较、COW 更新再追加、旧公式 resident、反序列化重复键及宽字典跨阈值回归;正在核心全特性测试,尚未冻结/接受候选。

核心全特性测试通过,普通候选已冻结。两对独立预实验全部完整输出一致且候选均更快:wall 中位数 13.184081 → 12.913290s,最大内核峰值 4,116,922,368 → 3,572,477,952 字节。已启动独立六对正式交替批次,预实验和历史批次不混入;尚未接受。

正式六对完成:wall 中位数 12.483284 → 12.325893s,最大内核峰值 4,116,471,808 → 3,572,150,272 字节,完整输出逐次一致。四对候选更快,两对未更快,时间改善幅度小,保留全部样本,不声称六对一致改善。已按顺序启动 Rust 三矩阵、普通 public JSON、完整全站语义、有界 AB/BA 九步及每修订依赖核对;r04 仍 started。

r04 三矩阵默认 751、全特性 760、无默认特性 510 项通过,零警告,包含 LSP。普通 public JSON 四组一致,完整全站语义仍为 103,479 帧/5,239,306,580 字节及相同 SHA-256。有界普通 AB/BA 与独立两版每修订依赖九步均通过,完整 HTTP 输出/精确错误 detail/observed 和 logical 依赖集合与冷构建一致。

耗时审计标记普通 serve 初始 build 中位数 13,593.5 → 13,710ms(约慢 0.9%,编辑到事件也慢),资产更新 build 10,017 → 10,034.5ms(约慢 0.2%,编辑到事件未慢)。即使幅度小仍不直接抹去;已启动独立三组完整九步交替复测并记录 CPU,原始标记保留且各批中位数分开分析。r04 仍未接受。

r04 结论:接受(第 4 / 10 轮已完成)

独立三组完整九步复测逐次正确性核对全部通过。初始 build 中位数 13,678 → 13,256ms、编辑到事件 13.763722 → 13.341419s、CPU 11.66 → 11.24s,三对候选初始均更快。资产更新 build 10,325 → 10,097ms、编辑到事件 10.547435 → 10.349824s、CPU 10.71 → 10.48s,三对中两对更快。原小幅回退未在独立中位数重现,所有原样本/回退标记和新的完整复测数据保留,不混批。

最终审计无未解决的可复现 serve 回退,全部门禁通过,manifest 已将 r04 标记 accepted。当前生产为 r01+r04,不含 r02/r03,无提交/推送。正式六组唯一同批收益仍为 12.483284 → 12.325893s、最大 RSS 4,116,471,808 → 3,572,150,272 字节,不与历史加速相加;3s/300MB 目标依然远未达到。开始独立 r04 驻留结构诊断,r05 尚未开始。

第 5 / 10 轮:扩展构造描述移出公共节点枚举布局

新 r04 驻留证据确认 2,369,208 个一项字典容量已变为 1,entries 容量字节 645,859,328 → 190,971,392,字典结构字节 350,067,760 → 315,060,984。全部节点/字段/属性/键计数不变。但仍有 4,273,237 个节点,每个 Item 192 字节,children Item 容量仍为 813,281,472 字节。

本轮将 Ctor::Extension 的 ExtensionCtor 描述从枚举内联改为 Box 所有权。保留完整 FunctionId、accepts、level,仍是深克隆和独立修改;不是 Arc 共享、不省略描述、不合并树或挂载。serde Box 对 contained value 透明,保持旧完整 {"Extension": {...}},其它变体不变。普通 builtin 节点无需为最大的扩展 payload 在每个枚举里预留空间;需要扩展描述的节点仍保留独立完整描述。

检查生产 Rust 未通过 size_of::<Item/Ctor> 做语言或 working-set 计费,本轮不改预算路径;Item children 的物理尺寸变化只作 RSS/诊断结果。新增扩展身份/类别查询、深克隆独立修改、旧 JSON 无额外 envelope 的完整字段往返测试。当前核心/pipeline 全特性回归进行中,r05 尚未接受。

r05 结论:拒绝(第 5 / 10 轮已完成)

核心/pipeline 全特性测试通过,两对普通预实验完整输出一致,但候选两次都稍慢:wall 中位数 12.627693 → 12.778768s,最大内核峰值 3,571,302,400 → 3,442,139,136 字节。未显示时间收益,按相同早停规则拒绝,不追加完整验收,也不把两个样本解释为统计意义上的回退证明。仅撤回 item.rs/content.rs 的本轮 Box 描述及两项测试,resolve 前核对全部生产文件与已接受 r04 一致。所有候选源码/二进制/专项测试和样本保留。

第 6 轮尚未开始。先对已接受 r04 运行独立 --verbose build 作全流程阶段诊断,空输出、完整输入、完整输出指纹仍复核,但 verbose 耗时不计为任何收益或正式验收样本;据此选择计算热点,不继续盲目尝试更深的布局间接存储。

该 verbose 诊断完整输出一致:扩展/路由约 0.345s、分析 2.403s、求值 5.333s、资产/模板准备 0.874s、HTML 2.977s、模板填充 0.254s、发布 2.157s,总进度 span 14.817s。树状日志本身增加开销,不能与普通 wall 相减宣称阶段收益,也不包含驱动进程启动/退出边界的完整验收定义。求值仍是优先调查对象。

新增独立 profile_ten_eval_cost.py 诊断副本,分别记录 synthetic_call、present、execute、expr 的调用数与 inclusive wall;递归及嵌套时间不能求和或直接当 exclusive 时间,计时器/原子计数开销也不用于收益。原生产源码/普通二进制不加入观察器,第 6 轮仍未开始。

第 6 / 10 轮:借用已有函数身份作热路径分派

独立诊断完成,完整输出一致,最终树结构/容量与 r04 相同。synthetic_call 0 次,排除它在本负载是热点的猜测;present 8,492,164 次、execute 6,073,286 次、expr 7,549,368 次。inclusive ns 原始值分别记录为 0、44,608,676,189、5,494,642,402、5,651,508,451;present 递归重叠,不能求和或作为普通 wall。

源码审计发现 execute 每次用 FunctionId::new("notist", "heading") 分配两个临时字符串作等值比较,native Construct 另为 embed 比较做同样分配。HTML 每个节点也克隆 target.function 用于只读注册表查找。第 6 轮仅消除这些临时身份分配:heading/embed 分别比较完整 module 与 name,HTML 借用已有 target.function,只有没有 target 时才构造原有 ctor fallback,保留优先级和未注册 native target 的原回退规则。没有更改任何储存身份、函数体、参数、执行计数、挂载、来源或预算。

新增 HTML resolved target 优先于 ctor、完整模块名不可混同、只读渲染不改树、缺失 native target 仍按旧规则回退测试;HTML/pipeline 全特性测试通过。候选已冻结,正在编译并进行独立 r04/r06 两对预实验;尚未接受。

预实验两对一快一慢,wall 中位数 12.288823 → 12.295132s(基本持平,不声称加速),最大 RSS 3,570,221,056 → 3,570,315,264 字节(差 94,208 字节,也不声称降低)。与两对均更慢的提前拒绝情形不同,本次进入独立六对正式测量以消除两样本的不确定性;门禁和验收标准不改变。

r06 结论:拒绝(第 6 / 10 轮已完成)

正式六对全部输出一致,五对候选更快,wall 中位数 12.236204 → 11.896804s。最大 RSS 3,570,274,304 → 3,571,343,360 字节,增加 1,069,056 字节。该小幅差距并不证明普遍内存回退,但不符合本活动预先编码的接受门禁“同批最大 RSS 不增加”;不在看结果后为候选临时放宽。保留明确时间收益的证据,仍按保守标准拒绝,不追加完整回归/serve 验收、不称候选已完整通过。

只撤回本轮 eval.rs/HTML 的借用分派改动和新增 dispatch.rs;resolve 前核对原有生产文件与 r04 完全一致。r06 冻结源码、二进制、专项测试和全部预实验/正式样本均保留,无提交/推送。

第 7 / 10 轮:复用已消费的 forest 缓冲区

基于新 evaluator probe 中 8,492,164 次 present 调用,原循环每次为非空 forest 新建独立输出 Vec。改成拥有所有权的 into_iter/map/collect,同型 Item 允许标准库原地收集、复用输入缓冲区;之后将任何多余容量 shrink 到旧实现的结果 len,避免保留 builder 空余槽。不引入 unsafe、共享表、缓存或惰性语义。

节点顺序、逐节点 PresentCheckpoint、aggregate overflow 处理、错误恢复、summary 更新时点及预算检查均维持原逻辑,reference_present 旧实现继续保留作测试 oracle。新增 129 个有序嵌套 sibling、多个零/临界/充分 content_nodes 额度的完整结果对照,并核对充分额度下所有节点 children 容量与旧 oracle 一致;正在 pipeline 全特性回归。第 7 轮仍未冻结/接受候选。

pipeline 全特性测试通过,普通候选已冻结。两对预实验完整输出一致,wall 中位数 12.340183 → 12.158626s,最大内核峰值 3,569,541,120 → 3,560,550,400 字节。一对候选更快、一对更慢,预实验不足以确认收益,启动独立六对正式批次,不与预实验混算;r07 仍 started。

正式六对完整输出全部一致,wall 中位数 12.206406 → 12.105351s,最大内核峰值 3,571,245,056 → 3,560,374,272 字节。三对更快、三对更慢,时间差小、不宣称稳健普遍加速。开始串行三矩阵、public JSON、完整全站语义、有界普通 AB/BA 和每修订依赖核对;尚未接受。

Rust 默认 752、全特性 761、无默认特性 511 项通过、零警告,包含 LSP;四组普通 public JSON 一致,完整全站语义仍为 103,479 帧/5,239,306,580 字节及同一指纹。普通有界四进程九步和独立两版每修订依赖九步全部正确性核对通过。

普通 serve 审计标记初始、修复、删除、模块、数据、资产更新的 build/编辑到事件中位数更慢;其中 build 分别 12,745→12,850ms、9,728→10,045.5ms、10,843→10,996.5ms、10,773→11,025ms、9,687.5→10,147.5ms、9,907→10,120ms。已启动独立三组完整九步交替复测并记录进程及已等待子进程 CPU,仍逐次完整冷输出/诊断校验。若回退重现则拒绝,不能以微小首次构建收益抵销;r07 仍 started。

r07 结论:拒绝(第 7 / 10 轮已完成)

独立三组完整九步复测通过全部正确性核对,大部分原标记已消除,但资产更新 edit-to-event 独立中位数仍为 10.350970 → 10.390632s(约慢 40ms)。该步 build 中位数 10,006 → 9,954ms、CPU 10.32 → 10.28s 改善,因此不声称证实算法变慢;不过既定事件耗时非回退门禁仍未通过。保守拒绝,不再重复测到得到有利结果,不用其他收益抵销原标记。只撤回本轮 present 原地收集及一项测试,resolve 前验证生产文件与 r04 一致。保留所有成功测试/语义/输出及前后两批耗时。

第 8 / 10 轮:原生内容构造不创建立即拆除的内层 Arc

依据新 execute 6,073,286 次调用证据继续审计:Native Construct 在通用结果路径中把已拥有的 children 包进 Arc<Vec>,通用成功分支随后立即 Arc::unwrap_or_clone 到 item.children。候选在 !code、运行期、非 value call、实现确为 Native Construct 且完整返回类型相等时,直接提交原有 children。保留所有参数求值/验证、comptime/深度/步骤检查、embed 规范化和可能失败的恢复边界,仍返回原有外层 Runtime::Content 的完整 Item forest。

没有合并外层节点、去掉 target/instance/origin 或跳过内容检查,children Vec 及容量原样转移;不同返回类型、Code、编译期和其他 native 仍走旧分支。测试 oracle 开启时禁用快捷提交,使原 reference_present 对照仍执行完整旧 Arc 结果路径。新增普通嵌套原生构造、本地 embed URL 规范化、重复 query/非法 UTF-8 错误,以及多个 content_nodes/steps 临界额度的完整结果对照;pipeline 全特性回归进行中。r08 尚未冻结/接受。

首次新增测试失败于夹具假设:常量 #embed("image.png?size=2", query: "other=3") 在分析阶段已精确报重复 query,不能断言 analysis 无诊断来覆盖运行期失败;16 个其它 pipeline 单测通过。原失败日志 r08-pipeline-tests.log 保留,未跳过用例。将错误值经 embed_runtime(target: String, query: String) 函数参数传入,确保分析通过、错误在原生运行期出现;完整 pipeline 全特性 retry1 通过。随后补强充分额度时必须出现精确重复 query/非法 UTF-8 诊断、成功用例必须零诊断的断言,重跑最终专项测试,未用“新旧都失败于别处”冒充覆盖。

强化后的最终 pipeline 全特性测试通过,候选已冻结。普通两对预实验完整输出一致,一对略快、一对较慢,中位数 12.446963 → 12.613415s,最大 RSS 3,572,269,056 → 3,572,588,544 字节。没有收益证据,按混合结果流程进入独立六对正式测量再决定,不混入预实验/插桩耗时;r08 仍 started。

r08 结论:拒绝(第 8 / 10 轮已完成)

正式六对完整输出全部一致,五对候选更快,wall 中位数 12.377741 → 12.270279s;最大 RSS 3,571,523,584 → 3,572,699,136 字节,增加 1,175,552 字节。不声称普遍内存回退,但与 r06 一样未通过预设最大峰值不增加门禁,因此拒绝,不追加完整验收。只撤回本轮 direct native block 和新增测试,resolve 前核对全部生产文件与 r04 一致,保留失败夹具和全部候选/日志/正式样本。

第 9 / 10 轮:在 SSG 阶段边界结束已死元数据的生命周期

新的独立 probe-r04-phases 不含巨大 tree HashSet。阶段边界 RSS/累计内核 HWM(字节)分别:分析 479,444,992/479,444,992,求值 2,936,098,816/2,961,321,984,资产 3,306,115,072/3,306,115,072,HTML 3,342,041,088/3,363,033,088,模板 3,574,784,000/3,574,784,000。累计 HWM 不是各阶段独立峰值,边界 RSS 不保证全是活跃 Rust 对象;该诊断不作收益样本。 canonical 输出共 78,004 文件、451,812,631 字节,其中 HTML 118,097,122 字节,亦解释了完整输出常驻本身已大于 300MB,不能用缩小输出负载来过关。

源码审计发现 HTML 已完成后 by_source 目的地索引和 outputs 路径查找集合仍活到整个 build 作用域退出;目录投影及 content asset 发现列表也比其最后用途活得久。第 9 轮只在最后用途之后显式 drop:资产准备后 content_assets、全部链接/HTML 完成后 DocumentIndex 和 outputs、目录投影后 source_dirs、完整 owned TemplateContext 建立后 dirs;data 原有 drop 不改。

不丢弃任何 Page、HTML、字段、数据、权威树或发布文件,不改变读写顺序、授权、预算、错误选择或模板 worker 策略;释放工作仍在整体计时内,只给后阶段复用已死对象的分配。既有目的地索引完全拥有元数据、TemplateContext 完整投影且不借用输入的测试继续适用,SSG 全特性回归进行中;r09 尚未冻结/接受。

r09 结论:拒绝(第 9 / 10 轮已完成)

SSG 全特性测试通过,普通两对预实验完整输出一致,但两次候选都稍慢,wall 中位数 12.301542 → 12.377678s,最大 RSS 3,570,884,608 → 3,570,032,640 字节,仅省 851,968 字节。未显示有效改善,按相同早停规则拒绝,不追加完整验收。只撤回本轮早释放语句与注释,resolve 前核对生产与 r04 一致,全部证据保留。

第 10 / 10 轮:按已知文档数量预分配 SSG 批次容器

最后一轮基于完整 51,739 页计数及模板/输出阶段峰值证据,给 analyzed、evaluated Document、Page 三个批次 Vec 按 routes.len/documents.len 预分配,避免从零几何增长、搬移,并避免最终 65,536 槽容器保留多余容量。只改批次外层容量,不改 Item.children、语言容器、元素顺序、文档数量、预算、读写或模板 worker 策略;不使用已拒绝的 r09 早释放改动。

SSG 全特性回归已通过,候选已冻结,正在普通 r04/r10 两对预实验;r10 尚未接受。这是最后一次优化实验,不启动 r11。此轮 resolve 后以最终接受版本对 r00 跑一个新的独立六对交付批次并核对源码/二进制/输入/完整输出,不把任意旧版本或不同批次混作最终成绩。

预实验完整输出一致、两对一快一慢,wall 中位数 11.982966 → 11.983628s(基本持平),最大 RSS 3,571,322,880 → 3,569,324,032 字节。进入独立六对正式批次,不把约 0.7ms 的中位数差解释成可靠回退或加速;r10 仍 started。

正式六对输出全部一致,四对候选更快,wall 中位数 12.154320 → 12.152446s,仅差约 1.9ms,不能视为可靠时间加速。最大 RSS 3,571,539,968 → 3,569,455,104 字节,约省 2.1MB。进入最后完整三矩阵、public JSON、全站语义、有界普通 AB/BA 及每修订依赖核对;若门禁不通过仍保留 r04,不开启第 11 轮。

用户询问当前状态时重新核查:r10 默认 751、全特性 760、无默认特性 510 项通过,零警告,public JSON 四组和完整 103,479 帧语义一致。普通有界 serve 已完成前三个进程,第四个 control 进程只完成 initial/content-edit/error,日志停在 fix 冷构建,相关 Python/CLI 进程均已不存在;没有成功完成通知,不能再称其仍在运行,具体中断原因未确认。

新增显式 resume_bounded 恢复:保留原第四进程的所有部分 rows/日志并排除其不完整计时,只对其可丢弃夹具作既有 base+delta/完整冷 inventory 核对归档;以前三个已完成进程不重测、不替换。以新 r10-bounded-recovery-1-r04 标签启动完整第四 AB/BA control 进程,记录 resumed_at 和中断标签、时间间隔;完成后继续两版每修订依赖及耗时审计。若时间间隔/回退需要独立复测仍单列,不能把缺失步骤记为通过。全部十轮已尝试,当前两轮 accepted、七轮 rejected、r10 started;新后台恢复已启动,交付六对仍未开始。

恢复第四进程完成全部九步,普通完整 HTTP 输出/精确错误 detail 与冷构建一致;两版独立每修订 observed/logical 依赖九步也全部通过。恢复后的 control 耗时显著低于中断前,而 candidate 两个进程来自中断前,故该跨间隔 AB/BA 的多项慢中位数不能直接证明候选退化,更不能用来接受。原样本、恢复时间和全部慢标记保留;启动独立三组完整九步交替普通复测(含 CPU、每步完整冷输出/诊断),不与跨间隔批次混算。该独立复测之后确定最终版本,不再开启优化实验。

r10 结论:拒绝;全部十轮已结束

独立不中断的三组完整九步复测,所有逐修订输出/诊断仍与冷构建一致,但既定耗时门禁仍未通过:content-edit、fix、delete 的 edit-to-event,以及 data/asset 的 build 和 asset edit-to-event 标记未消除。例如独立资产 build 中位数 8,613→8,629ms、事件 8.906420→9.046626s;数据 build 8,599→8,629ms。部分差异很小、CPU 也不全同向,不把它们说成普遍算法退化,但不在最后一轮临时放宽门禁或重复测到有利。

拒绝 r10,仅撤回三处 Vec 预分配,resolve 前验证完整生产文件与 r04 一致。最终保留 r01+r04,十轮中 2 accepted/8 rejected,不开始 r11,不提交或推送。全部失败/未完成/成功记录及冻结版本保留。

开始新的独立 delivery 六对 r00/r04 普通进程对照;每次空输出、固定暖文件系统、完整输入和 78,004 输出指纹复核,以 exec→wait4 wall 和内核峰值记录。此批是最后报告活动整体差异的唯一依据,不混合之前的 r04/r10 批次或加总已接受轮次收益。最终版本的回归/完整语义/普通 serve/每修订依赖门禁沿用相同冻结 r04 的已通过证据,最终化工具再核对当前所有生产文件(含非 Rust 模块/测试夹具)与冻结源及二进制完全一致。

最终交付:十轮结束,目标未达到

新的独立 delivery 六对均完成,每次全部 78,004 输出文件(含 51,739 HTML)SHA-256 一致;六对最终版都更快,不剔除样本、不与任何旧批次混合。

repetition

r00 wall (s)

r04 wall (s)

r00 max RSS (bytes)

r04 max RSS (bytes)

0

11.0550

10.2047

4,843,167,744

3,571,957,760

1

11.5171

9.7292

4,844,507,136

3,571,814,400

2

11.5132

10.6521

4,844,646,400

3,572,097,024

3

11.9192

10.9556

4,843,958,272

3,571,802,112

4

11.5771

10.7531

4,843,810,816

3,571,433,472

5

11.5143

10.7473

4,842,336,256

3,572,006,912

  • 本批 r00 wall 中位数 11.5156721655s,最终 r04 10.6996796960s,减少约 7.09%;这是本批整体差异,不相加 r01/r04 历史收益。

  • 本批最大内核峰值 4,844,646,400 → 3,572,097,024 字节,减少 1,272,549,376 字节。GB 按十进制;不是稀疏采样或分配流量,不将 waited-for children 的最大值相加。

  • 最终版本仍 不满足 3s/300,000,000 字节。十轮授权已全部用完,2 接受/8 拒绝,至此停止,不自动开启第 11 轮。

  • 最终生产实现为 r01+r04。与本活动 r00 冻结起点相比,只有 crates/notist-core/src/shared.rs 和 crates/notist-core/src/data/retention.rs 的生产内容变化;所有活动之前的脏工作完整保留,非 Rust 模块、测试夹具及 Cargo 配置/锁也已与 r04 冻结逐文件匹配。HEAD 未改变,无自动提交/推送。

  • 最终普通二进制为 /tmp/opencode/notist-ten-rounds-20261105/bin/r04,SHA-256 52bbbb139beef20627cffd748bd888b5bf365bc8f4b95a371efe8dd8f264c0e9。原始完整精度样本 delivery-samples.json,本批统计 delivery-summary.json,最终源码/二进制/目标核验 delivery-final.json。

  • 同一最终版本默认 751、全特性 760、无默认特性 510 项通过、零警告,包含 LSP;四组普通 JSON、完整全站 103,479 帧/5,239,306,580 字节语义、普通连续 serve 九步与每修订冷构建输出/精确诊断/完整 observed 和 logical 依赖核对通过。r04 的原 serve 微小回退标记未在独立三组复测重现。四个历史 Python 观察器锚点失败仍单列,r00 已等价复现,不声称全 Python 测试通过;本活动工具专项最终两项通过。

最终化工具首次因预定 delivery-summary.json 已被测量驱动用于本批统计而 fail-closed,未覆盖该文件、未更改样本;改用独立 delivery-final.json 后复核通过,重试日志为 logs/delivery-finalize-retry1.log。这是报告文件命名冲突,不是构建或测量失败,亦未重测替换任何样本。

后续未完成事项已更新到原性能目标 todo,不新建重复项:完整输出自身约 451.8MB,当前全量字节 BuildOutput/权威树生命周期仍需新的架构实验,不能只靠小分配优化宣称 300MB。任何后续轮次须重新获得授权,继续保留完整内容、语言/wire/挂载/来源/授权/预算约束。

最终归档由 tools/archive_ten_delivery.py 保存当前完整脏工作区副本、完整工具与本报告、Git diff/status,记录 delivery-workspace-inventory.json、delivery-reproducer-inventory.json 和 delivery-evidence-inventory.json。证据索引涵盖保留的二进制、源码、原始日志、所有样本、所有失败与夹具差分;规范输入沿用 manifest.inputs 的完整指纹,可重建 Cargo target 和 Python bytecode 不计作证据,不执行任何清理删除。