bench_gc_pressure regressed on main and is now above node. It was a win before.
Measurements (quiet host, repeated runs, min taken)
| tree |
gc_pressure |
node |
my branch based on 6bc775d9b9 (+ my 7 commits) |
10 |
13 |
plain origin/main @ 9031e490dd (clean worktree, no local changes) |
16–17 |
13 |
| my branch rebased onto current main |
17 |
13 |
Stable across five runs each (first run is cold: 46/24 then settling to 16–18). Same host, same harness, same fixture.
It is not my change, and that was tested rather than argued
My branch adds a GC-poll skip for the packed-f64 loop clone (#9379), which is exactly the kind of change that could starve a collector on a GC benchmark. Ablation: with the poll-skip disabled, gc_pressure still measures 17. And plain origin/main with none of my commits measures 16–17. So the cause is in main.
Bisect window
6bc775d9b9 refactor(codegen): split the ws dispatch rows out of net_events.rs (#9343)
..
757beace0f fix: symbol-filter isolation (#9383) + CONCAT_MEMO thread-local (#9390)
That is 27 commits. I have not bisected it — GC internals are not my lane, and whoever owns the recent GC/scanner work will recognise the culprit faster than a blind bisect finds it.
Why this matters beyond one row
A regression here is not just a slow row: gc_pressure is the workload that would catch a bad GC change, so a silent 1.3x here also degrades its value as a guard. And it poisons unrelated measurement — anyone benchmarking on main right now will attribute part of this to their own work, which is the same failure that cost a session most of a day earlier today (#9341/#9345).
Caveat on my own numbers, stated because it is exactly the trap I fell into an hour ago: the "10" row was measured on a branch whose base is now 27 commits old. Same harness and host, but not the same tree — so treat the 10 as "was clearly winning before this window" rather than as a precise before-value. The 16–17 on a clean origin/main worktree with no local changes is the number I would defend.
bench_gc_pressureregressed on main and is now above node. It was a win before.Measurements (quiet host, repeated runs, min taken)
6bc775d9b9(+ my 7 commits)origin/main@9031e490dd(clean worktree, no local changes)Stable across five runs each (first run is cold: 46/24 then settling to 16–18). Same host, same harness, same fixture.
It is not my change, and that was tested rather than argued
My branch adds a GC-poll skip for the packed-f64 loop clone (#9379), which is exactly the kind of change that could starve a collector on a GC benchmark. Ablation: with the poll-skip disabled, gc_pressure still measures 17. And plain
origin/mainwith none of my commits measures 16–17. So the cause is in main.Bisect window
That is 27 commits. I have not bisected it — GC internals are not my lane, and whoever owns the recent GC/scanner work will recognise the culprit faster than a blind bisect finds it.
Why this matters beyond one row
A regression here is not just a slow row:
gc_pressureis the workload that would catch a bad GC change, so a silent 1.3x here also degrades its value as a guard. And it poisons unrelated measurement — anyone benchmarking on main right now will attribute part of this to their own work, which is the same failure that cost a session most of a day earlier today (#9341/#9345).Caveat on my own numbers, stated because it is exactly the trap I fell into an hour ago: the "10" row was measured on a branch whose base is now 27 commits old. Same harness and host, but not the same tree — so treat the 10 as "was clearly winning before this window" rather than as a precise before-value. The 16–17 on a clean origin/main worktree with no local changes is the number I would defend.