Commit cb299b3
committed
fix(bench): xmake's buildir is relative to -P, so clean() was missing it entirely
`xmake cold 0.60s`,紧挨着 `touch-hub 82.79s`,137 个模块的工程,状态 `ok`。
真因:xmake 把 `--buildir`(`-o`)**规范化成相对工程目录(`-P`)的路径**,构建时
再拿这个相对路径去**当前工作目录**下解析。harness 的 cwd 是被测工程,`-P` 是
描述目录,两者不同 —— 于是 `-o <workload>/build` 变成了
`<workload>/mcpp-2026.8.11.3/build`(工作负载路径**翻倍**),而 `clean()` 一直在
删 `<workload>/build`,那里从来没人写过。
结论:**这套件产出的每一个 xmake 真实工程 cold 数字,量的都是一棵已经最新的树。**
生成的 fixture 逃过一劫,因为那里 `buildfile_dir == project_dir`,两者恰好一致。
修法是让 xmake 的三条命令都从 `-P` 目录跑,这样它的相对解析和进程 cwd 一致。
实测:同一个 cell 从 **0.58s → 90.95s**,产物落在
`bench/projects/mcpp/mcpp-2026.8.11.3/build`。
(main.cpp 里那条 `cold > 2 × noop` 的不变量就是为这类缺陷加的 —— 上一次 5-way
跑完带着这个格子退出 0。)1 parent d8fc972 commit cb299b3
5 files changed
Lines changed: 6385 additions & 6378 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
2 | 6 | | |
3 | 7 | | |
4 | 8 | | |
5 | 9 | | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | 10 | | |
11 | 11 | | |
0 commit comments