Skip to content

R3 增量指标封存一致性 ​

批次合同(实现前冻结) ​

用户已批准继续开发。本批不改指标公式、单位、scope 与质量枚举。只补齐持久化与增量缓存复用条件;周期 checkpoint 和尾段恢复继续开放。

现状:增量指标可消费 Raw 前缀后绑定完整 Raw 哈希,finalizer 仅比较该哈希就复用;manifest 直接写入有截断窗口。

  • append 必须从序号 1 连续消费;无指标输出的 Raw 同样推进消费位置。重复、乱序、缺口或写入失败使该 recorder 失效,禁止继续封存。
  • seal 必须满足 consumedRawEventCount = lastConsumedRawSequence = raw.eventCount。先 flush/fsync 指标字节,再发布 manifest;持久化失败传播,不产生成功回包。
  • v2 incremental manifest 显式记录消费边界;finalizer 复用还要求 Session、Raw 哈希、封存边界一致。历史无封存凭证的缓存从已验证 Raw 重建,不把旧凭证升级为已证明完整。
  • Raw 与指标 manifest 使用同目录临时文件写入、flush/fsync、原子替换。最终交付 manifest 也原子替换;不把文件原子性宣称为整场事务或断电恢复。
  • 独立加载校验指标帧数量;公式和编码字节不变。旧 Raw/base64 与新外置 blob 都保留读取。

效率合同 ​

单 writer,无新增线程/队列/轮询。append 新增 O(1) 序号检查与常数状态;seal 新增常数大小 manifest 写入及 fsync,不新增 Raw 全扫。底层磁盘同步沿用操作系统阻塞语义,未实现可取消 I/O;E2 基准子进程单轮 120 秒超时。不能将该超时称为产品停止预算。

验收:前缀/重复/乱序/无输出事件、fsync/replace/满盘故障注入与旧缓存回退;全量回归。真实大 Raw 新旧格式各至少20轮,与上一批相同输入比较,耗时/CPU中位回退不超过10%,另报RSS、逻辑I/O和物理I/O证据限制。完整点击停止≤2秒及持续吞吐1.5倍、首响应/长任务E4仍开放。

实施与验证(E2) ​

增量 v2 加入连续序号、消费边界和失效状态;fsync 后原子发布指标凭证。finalizer 复用必须同时匹配 Session、Raw哈希和两个消费边界;无凭证旧缓存从已验证Raw重建。独立加载增加 frameCount 校验。Raw/metric/delivery manifest 发布改为同目录原子替换。

新断言捕获普通启动、预热启动、源丢失记录三个漏消费分支,现已统一 record_and_derive 入口。全量 Python 256/256(1.220秒);新增前缀封存、重复/缺口/布尔序号、无输出事件、写入/同步满盘、替换失败、旧缓存回退、错误Session/边界和frameCount回归。故障注入是E2,不是物理断电/拔线证明。

真实规模回放 ​

与上一批样本 B 相同输入,本批证据工具单对输入别名为 A;通过输入hash匹配,不以别名混淆样本。legacy/external各20轮,六类语义产物全部一致,产品源SHA256前后一致。一次中间实验因修改了实时入口导致sourceUnchanged=false,已作废,不纳入成绩。

legacy耗时中位2363.247ms、P95 3585.051ms、max4109.030ms;external中位583.550ms、P95769.493ms、max779.158ms。external CPU中位581.190ms、RSS峰值244695040字节,逻辑吞吐345.62MB/s。较前批同格式625.108ms/621.851ms,中位耗时与CPU未回退超过10%;P95仍有波动,记录最差轮不隐藏。物理I/O峰值未取得,OS缓存/其他主机工作可能影响结果;全量报告子链依然O(N)、Raw对象驻留,长期资源门禁未关闭。

最终40轮匿名证据。本批基准为完整finalizer,不是在线复用快路径或点击停止端到端;持续采集新增CPU和首响应验收仍开放。

产物与开放门禁 ​

本批合并此前在途R3存储blob、共享快照与单次指标派生代码及其匹配测试,避免仅提交封存补丁而缺少依赖。旧格式可回放;新格式需使用支持外置blob的版本,回滚客户端前保留完整会话,不声称旧客户端可读新格式。

本机签名检查0个有效身份;正式Developer ID/Notary/staple/Gatekeeper和GPL分发结论继续开放。文件级原子发布不含目录fsync/整场事务,不声称断电耐久性。周期checkpoint、尾段回放、满盘重启恢复、Frame/Startup语义、长会话及E4继续开放。

下一阶段与整体进度 ​

R3封存一致性完成E2子批,R0~R6整体partial。下一步周期durable checkpoint与崩溃尾段恢复,再补在线等源CPU/首响应、1GB/60分钟规模以及E4。未关闭门禁不因生成内部包而取消。

Build 40 内部包核验(E2) ​

Swift111/111通过;站点64合同门禁及构建通过(有bundle体积警告)。重新冻结采集Core并构建Build40 x86_64,ZIP独立解包文件/符号链接哈希一致、严格codesign通过,包内probe ready。ZIP 110328540字节,SHA-256 1d6d7c997ba0e748f89993088f15175582732081b7022c10c10186eee09d0c27。

仅ad-hoc;Gatekeeper与staple未通过,未替换/Applications、未执行原生UI或E4。保留可解包内部测试产物,不作为正式安装发布。包证据。

Perfowl · Performance Observer