Skip to content

traits-2 branch tip fails its own perf gate: s_many robust regressions at HEAD #209

Description

@Roger-luo

Summary

On codex/traits-2-impl (#204), the branch tip fails its own perf gate with no working-tree changes applied. Running the gate in a pristine git archive HEAD | tar -x checkout reports two robust regressions:

row ratio range ns (old → new)
tableau-surface/clifford/bare/s_many 1.096x 1.076–1.099 430.2 → 468.8
tableau-surface/clifford/generalized/s_many 1.083x 1.080–1.090

Command: mise run perf-report -- --bench tableau_surface_bench --filter clifford --launches 4

Both are robust in the harness's sense — median > 1.03 and min(per-launch) > 1.03 (benchmarks/perf_regression_report.py:259) — so they aren't process-placement artifacts, and 4 launches agree.

Why it matters beyond the two rows

The practical bar for reviewing a changeset on this branch is currently "no new robust rows versus HEAD", not "the gate is green" — which is a materially weaker and much easier-to-misread criterion. Anyone who runs the gate expecting a clean baseline will spend time attributing these two rows to their own change.

There's also a nastier second-order effect: an unrelated changeset can mask this. In one measured working tree bare/s_many read 0.942x — apparently healthy — because that tree's code layout shifted the row. So the gate's baseline is not just red, it's unstably red, and a change that hides a pre-existing regression looks better than one that doesn't.

Suggested handling

Either fix s_many (the s/s_dag batch path is phase-only, so the fused body is simple enough that a 1.08–1.10x gap against legacy should be explainable), or record it in the allowlist with the measurement so the gate's baseline is genuinely green and future runs mean what they say.

Related: #208, which is why the gate's coverage is also smaller than it looks.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    performance: regressionPerformance: issues and PRs related to performance regressions.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions