03 · 评分与迭代记录

记录每轮:双评委逐项分数、平均分、Top 扣分与修复动作、新增实验。 评分规则见《01-竞品分析框架与评分标准》§6–§7。评委为无上下文独立代理,任务书:experiments/scripts/judge_prompt.md。

迭代总览

版本日期评委1评委2平均目标结果关键动作
v12026-09-24818080.5≥65✅ 达成Round 1: E1/E2/E4/E5 × 4 配置
v22026-09-248685.585.75≥80✅ 达成(通过线未达)Round 2/3: E3、E5B、E6、tuned 行、1M 预热合规重测、E5P 压力耦合发现
v32026-09-24———≥90—Round 4: E4P 重跑(修归因错误)、E5P 补 5 reps、E4 离散度、条件落盘

Round 1 → 文档 v1

数据:experiments/data/round1/(E1/E2/E4/E5 × system/jemalloc/jemalloc-tuned/mimalloc × 5 reps,verify 活性证据 8 份;tcmalloc 失败档案 experiments/data/tcmalloc-failure/)

过程事件(诚实性记录):

评委 1(A):81/100(A13 B13 C13.5 D13.5 E18 F10)

评委 2(B):80/100(A12.5 B13.5 C12 D14 E18 F10)

v1 平均分:80.5 / 100(双评委:81 + 80)。目标 ≥65 达成;通过门槛未达(总分 <90,D 维 54–56% < 80% 一票否决线)。

Gap 分析(按扣分排序,合并双评委):

  1. D2 −5/−4.5:E3/E6 矩阵空缺 + tcmalloc 无 S 级数据(E3 已在 Round 2 完成;E6 已备好待跑;tcmalloc 跨平台对照组本环境不可行,维持降档+真机 PoC 建议)
  2. D4 −3/−2.5:E6 宏基准未执行
  3. D1 −2/−2:§5.3 开销列数据错误(+9.7/+9.0/+8.5 → 应为 +8.1/+6.9/+6.8)传导至 §6.2;体积/EINVAL 等 [S] 小项未落盘
  4. D3 −1.5/−2:E5 零离散度 + system RR@5s 双峰(0.609–0.962)被中位数掩盖;"±5%"不实(实际最宽 −8.6%)
  5. C3 −1/−1.5:E1/E2 无预热 + 框架 1M 预热未达
  6. B2 −1.5/−1:tcmalloc S 级数据缺失(降档已接受)
  7. 小项:目录、表编号、"稳态开销"定义、E5 曲线图、failures.log 表述、版本边界、brew 编译选项披露、mimalloc 16K 页验证、RR=0 论点四重复收敛

修复动作(v2 计划,数据先行):

  1. bench.c throughput 路径加 ≥1M 预热,全模式预热统一提升至 1M → 重跑 E1/E2/E3 全配置(round3)
  2. system E5 补 5 reps(共 10)刻画归还时间分布
  3. aggregate.py:开销列/RR 离散度由脚本产出;新增 sizes.json 落盘
  4. E6 sqlite 宏基准执行(round3)
  5. 文档 v2 全量修订(数据修正 + 结构性小项 + E3/E5B/E6 新章节)

Round 2 + Round 3 → 文档 v2

数据:round2/(E3 全 5 配置、E5B 三家族、mimalloc-tuned 全行——旧 200K 预热协议)+ round3/(1M 预热合规全量重测:E1–E5B × 5 配置、system E5 10 reps、E6 宏基准、探测落盘)+ round3/pressure/(E5P/E4P 压力耦合对照)。

过程事件(诚实性记录):

v2 修复对照表(v1 Gap → v2 动作):

v1 扣分项v2 修复
D2 E3/E6/E5B 矩阵空缺E3(表 13)、E5B(表 12)、E6(表 14)全量补齐,可测矩阵 18/18
D4 宏基准 0 分E6 sqlite 三构建 × 5 reps + 交叉验证结论(§5.7)
D1 开销列数据错误全表改为脚本产出值(summary.md),mimalloc 条件敏感性作为发现如实呈现
D1 体积/EINVAL 未落盘sizes.json、probe_jemalloc.json、probe_mimalloc.json(round3)
D3 E5 零离散度表 11 附 P25–P75 + 逐 rep 注记;E5P 表 11b 直接给出逐 rep 值
D3 RR@5s 双峰成因E5P 实验解答:压力状态调制(§5.4 观察 1/5)
C3 预热协议bench.c 全模式 1M 预热 + round3 全量重测 + §4.3 声明更新
B1/C4 mimalloc 16K 页未验证_mi_os_page_size()=16384 落盘(probe_mimalloc.json)
C1 brew 编译选项§10.3 附录(brew cat 摘录)
A2 目录 / A3 表编号 / A4 定义目录 + 表 1–23 编号 + "稳态开销"严格定义(§4.2)
A3 E5 曲线图assets/e5_return_curves.svg(8 曲线)
E1 归因修正"8 线程瓶颈=带宽"改为异构核解释(§5.2/§7.1);新增 XNU 源码证据(§10.5)
E3 平台外推iOS 链接期断言移入 §9.1 表(含依据)
E4 版本边界表 21 标注版本边界行
B2 tcmalloc 旧版尝试环境不可行(GitHub 不通,brew 仅 2.18.1),维持降档;§8.3 真机 PoC 清单保留

评委 1(A):86/100(A14 B14 C12 D18.5 E17.5 F10;D 维 74% 触发一票否决)

评委 2(B):85.5/100(A12.5 B14 C12 D20 E17 F10;各维 ≥80% 但总分 <90)

v2 平均分:85.75 / 100(86 + 85.5)。目标 ≥80 达成;通过线 ≥90 未达(A 判 D 维 74% 一票否决,B 判各维达标但总分不足)。


Round 4 → 文档 v3

过程事件(诚实性记录):

v3 修复对照表(v2 Gap → v3 动作):

v2 扣分项v3 修复
D1 −4(A) E4P 归因错误作废 + 双配置重测(表 10 注 1/注 2 撤回声明)+ 全部下游表格/叙事修正
D1/C4 压力条件不可溯源协议固化:hog2.c 入库、free_pct.log 落盘、MANIFEST.md 逐文件条件、run_pressure_test.sh 参数化可复现
D3 −2(B) E4 零离散度aggregate.py 输出 EMR IQR + 逐 rep;表 10 全披露(system 0.573–0.815)
C4 复现链断裂同上;交错协议本身入脚本
E1 −1.5 推理链断裂条件敏感叙事撤回(基于真实数据重写);异构核归因降级为"中"并注明未做 affinity 对照
C3/E5P reps 不足全部 5 reps/配置 + 交错对照 10 reps
D2 −1.5(B) E4P 单配置补 system E4P(发现其 rep 方差大——本身成为观察 2)
表 11 口径/计数/编号/图注/KiB全部修正(min–max 标注、25 组、3.1、图 1、kB 十进制)
C2 E6 口径偏离§5.7 加声明(RSS 外部采样 vs footprint 的偏离 + tuned 不入 E6 理由)

评委 1:{{FILL: v3}} 评委 2:{{FILL: v3}}

v3 平均分:{{FILL}}

(v2→v3 的 Gap 分析与修复动作已并入上方 Round 4 修复对照表;旧"Round 3 → v3"模板占位段已删除——Round 4 即 v3 轮。)

终端设备场景用户态内存分配器竞品分析 · 实验驱动 · 评分迭代 · 数据可溯源