--- type: devlog kind: validation title: R3 存储格式 80 轮回放与一致性验证 date: 2026-09-09 status: partial stage: P4 evidence: E2 --- # R3 存储格式 80 轮回放与一致性验证 ## 结论与范围 R3 在途代码完成两份留存 Raw、新旧格式各 20 轮,共 80 轮 E2 回放。六类产物语义哈希一致。大样本外置 chunk 格式显著降低 finalizer 耗时;这不是旧提交与新提交的代码 A/B,更不是点击停止到完整报告的 E4 验收。 本批只提交基准工具与验证记录。被测产品代码及原生字节测试仍为未提交在途改动,未进入 Build 39;完整 Python 源文件 SHA-256 已随证据冻结,验收结果不得直接归属于本批文档提交对应的产品树。 ## 固定环境与方法 - Python 3.12.3、pymobiledevice3 11.3.1、x86_64。 - 每份样本各 20 轮 AB/BA 交替,新进程串行执行,并发 1,单轮超时 120 秒。 - 每轮只复制 manifest/Raw/blob 到独立临时目录,不复制任何已派生缓存,不修改输入会话。复制不计入 finalizer 时间;OS 缓存可能为热。 - 关键路径为全量校验、指标派生、逐帧、报告、启动与自校准。复杂度仍 O(Raw 字节数 + 事件数),解析对象仍驻留,并非有界增量终态。 - 单轮目标沿用 ≤2 秒作 finalizer 子集检查;完整产品合同还包括点击、drain、持久化、索引与报告 ready,不据本批关闭。 - 六类比较对象:metrics-derived、frame-events、frame-report、report-stat、startup-report、launch-spans。仅 startup-report 排除因存储字节改变而变化的 sourceRawSHA256;其他字段不忽略。不是全部交付文件逐字节相同。 ## 逐轮汇总(E2) | 样本/格式 | 轮数 | 中位 ms | P95 ms | 最大 ms | >2秒 | CPU中位 ms | 进程峰值 MiB | | --- | --- | --- | --- | --- | --- | --- | --- | | A/legacy | 20 | 570.810 | 599.020 | 668.167 | 0/20 | 567.825 | 114.14 | | A/external | 20 | 579.976 | 628.983 | 657.804 | 0/20 | 575.561 | 114.15 | | B/legacy | 20 | 2556.621 | 2736.737 | 2967.406 | 20/20 | 2550.032 | 444.20 | | B/external | 20 | 625.108 | 663.042 | 674.451 | 0/20 | 621.851 | 233.42 | 样本 A 原始约 18.54 MB;外置格式耗时中位增加约 1.6%,不宣称所有负载均加速。样本 B 原始约 267.49 MB,外置索引与 blob 共约 201.68 MB;中位耗时降低约 75.5%,进程峰值 RSS 降低约 47.5%。 吞吐为逻辑输入字节/finalizer 耗时,不是磁盘物理吞吐或持续采集服务率。样本 B legacy/external 中位约 104.63/322.64 MB/s;各格式输入字节数不同。RSS 为进程生命周期高水位;OS block 计数受缓存影响,逻辑读写量不代替物理 I/O 峰值。未测主线程、采集首响应、30/60 分钟稳态资源和 1 GB 最差输入。 ## 自动测试与回归发现 首次全量为 246/247:预热测试沿用 base64 膨胀假设,但在途源已使用 native bytes。配套在途测试改为真实 30×10 MiB 非零字节输入;32 MiB 缓存应保留末尾三个 chunk,覆盖淘汰 27 个、270 MiB。预算不增加;不再用小型 byteLength 占位宣称真实压力验证。复测 247/247(E2,1.343 秒),产品代码本轮未改。 测试修改依赖在途产品格式,暂不单独提交至旧产品树;本批基准运行时产品源哈希前后一致。 ## 复现与证据 基准入口为仓库 MacApp/scripts/benchmark-r3-replay.py;参数 --pair 接受旧格式与外置格式的会话目录,可重复指定;--rounds 默认为 20,--output 指定匿名 JSON。输入必须为可信的本地测试副本。每轮派生写入独立临时目录,结束后清理,输入保持只读。 [逐轮匿名证据](/archive/validation/evidence/perfowl-r3-format-replay-20-rounds-2026-09-09.json) · [已批准方案](/devlog/p4-capture-quality-efficiency-repair-plan) ## 下一阶段与整体进度 R0/R1/R2 局部实施、R3 验证推进,R4~R6 未关闭。下一步审查并完成 durable checkpoint、seal 消费一致性、满盘/崩溃/断连恢复及在线派生对采集延迟的影响,再冻结产品源码与测试共同提交、打包验证。真实规模至少补齐 1 GB 和长会话矩阵。 本批不变更指标公式、scope、单位、支持数量或质量语义,不升级任何指标为 E4。Build 39 仍为既有内部包;Developer ID、公证、stapling、Gatekeeper 与分发法务门禁继续开放。 ## 本批补充检查(E2) 真实 300 MiB 预热压力用例独立重复 20/20,通过 32 MiB 保留预算与显式淘汰断言。站点构建通过,64 项 Registry 合同检查通过,无死链报错;仍有 bundle 大小警告,不视为主线程或页面性能达标。