目标合并分支: master
问题
当前 port/linux/ci_benchmark.sh 连续运行 20 次,但 ci_benchmark_select.py 只按 Performance Points 选择中位次对应的一整份 benchmark_result.json,随后 github-action-benchmark 仅把这一份结果发布到 Pages。其余 19 次样本、均值、中位数、标准差、CV 和置信区间均未导出。
这会导致跨 Action run 的变化无法区分为 VM 优化收益、runner 波动或二进制布局影响。近期数据中:
05719194e9 -> 94c0d053fb:Performance Points +9.219%,公共 VM 项目耗时下降约 7.200%–13.622%;
94c0d053fb -> 5cde1a9648:后者只包含线程锁语义修复,但 Performance Points 仍 +7.099%,各 VM 项目变化为 -1.756%–13.306%;
- function-call 新基准在优化前没有成功发布的 Action 基线,不能做直接前后对比。
因此现有 Pages 数据只能说明近期总体方向改善,不能可靠证明具体性能提交的净收益。
目标
- 保留每轮 20 次原始样本,或至少导出每个 benchmark 的 count、median、mean、standard deviation、CV、min 和 max。
- Performance Points 与各 VM benchmark 分别统计,不能用 Points 中位次对应的单份向量代替全部项目统计。
- 支持在同一 commit 上重复触发 benchmark,形成 runner 间方差基线。
- Pages 导出继续兼容
github-action-benchmark 的可视化,同时增加机器可读的聚合统计文件。
- 性能结论只有在收益稳定超过噪声/CV,且控制基准无异常漂移时才标记为有效。
验收
- 同一 commit 至少两次 Action run 可查询每项 benchmark 的样本量与离散度。
- 变更前后比较能输出绝对值、百分比、噪声范围和
improved / no-credible-change / regressed 判定。
- 不增加目标固件 RAM/Flash;统计只发生在 Linux CI。
目标合并分支: master
问题
当前
port/linux/ci_benchmark.sh连续运行 20 次,但ci_benchmark_select.py只按 Performance Points 选择中位次对应的一整份benchmark_result.json,随后github-action-benchmark仅把这一份结果发布到 Pages。其余 19 次样本、均值、中位数、标准差、CV 和置信区间均未导出。这会导致跨 Action run 的变化无法区分为 VM 优化收益、runner 波动或二进制布局影响。近期数据中:
05719194e9 -> 94c0d053fb:Performance Points+9.219%,公共 VM 项目耗时下降约7.200%–13.622%;94c0d053fb -> 5cde1a9648:后者只包含线程锁语义修复,但 Performance Points 仍+7.099%,各 VM 项目变化为-1.756%–13.306%;因此现有 Pages 数据只能说明近期总体方向改善,不能可靠证明具体性能提交的净收益。
目标
github-action-benchmark的可视化,同时增加机器可读的聚合统计文件。验收
improved / no-credible-change / regressed判定。