Skip to content

Commit cb299b3

Browse files
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

File tree

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2+
mtimes = {
3+
["xmake.lua"] = 1786600374,
4+
["../common/xmake/payload.lua"] = 1786590977
5+
},
26
recheck = false,
37
options = {
48
builddir = "/home/speak/workspace/github/mcpp-community/mcpp/bench/projects/mcpp/mcpp-2026.8.11.3/build",
59
mode = "release"
6-
},
7-
mtimes = {
8-
["xmake.lua"] = 1786600374,
9-
["../common/xmake/payload.lua"] = 1786590977
1010
}
1111
}

0 commit comments

Comments
 (0)