You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub-millisecond cache lookups (`test_summary_cache_lookup`, `test_composer_map_cache_lookup`, `test_tab_summary_cache_lookup`) and small ZIP export (`test_post_export_zip[composers-10]`) are already listed in `EXCLUDED_FROM_GATE` because shared runners show 2–4x spread. For remaining gated benches that turn flaky, raise `--slack`at baseline refresh time or add a targeted `EXCLUDED_FROM_GATE` entry.
42
+
Sub-millisecond cache lookups (`test_summary_cache_lookup`, `test_composer_map_cache_lookup`, `test_tab_summary_cache_lookup`) are already listed in `EXCLUDED_FROM_GATE` because shared runners show 2-4x spread. When another gated bench turns flaky from runner variance, add a targeted `EXCLUDED_FROM_GATE` entry in `scripts/check_benchmark_regression.py`. Use `--slack`only when intentionally recalibrating all baselines via `scripts/reduce_baselines.py`, not to patch a single flaky benchmark.
43
43
44
44
`test_summary_cache_round_trip` is intentionally excluded from the gate: it calls `set_cached_projects` (file write) + `get_cached_projects` (file read) each round, so OS page-cache state on shared runners causes 3–5x variation between consecutive CI runs. The baseline entry is kept for observation only.
45
45
46
-
`test_post_export_zip[composers-10]` is excluded for the same reason on the small corpus: observed ~4x spread on ubuntu-latest (e.g. 0.008s vs 0.031s on consecutive runs of the same branch). That is environmental variance (cold ZIP / page-cache), not an application slowdown — refreshing `baselines.json` cannot bracket both tails within the 0.5x–1.2x gate. The baseline entry is kept for observation only. `composers-50` remains gated (~1.2x spread).
46
+
### Export ZIP benchmarks
47
+
48
+
Both `test_post_export_zip[composers-10]` and `test_post_export_zip[composers-50]` are excluded from the regression gate. ZIP export timing on shared ubuntu-latest runners swings with page-cache and first-write effects (e.g. composers-10 ~4x between runs; composers-50 exceeded 1.2x vs a Jul-15 baseline at 0.045s vs 0.028s). That is environmental variance, not an application slowdown. Baseline entries in `baselines.json` are kept for observation only; parse, search, and fingerprint benches remain gated.
47
49
48
50
### Out-of-scope CI fixes in feature PRs
49
51
50
-
Sometimes a feature PR fails **Performance benchmarks (gated)** even though the PR does not touch export, parse, or search hot paths. When the failure is pre-existing runner variance (as with `composers-10` above), the correct fix is a targeted `EXCLUDED_FROM_GATE` entry — **not** a `baselines.json` refresh bundled into the feature PR.
52
+
Sometimes **Performance benchmarks (gated)**fails on `master`even though the change does not touch export, parse, or search hot paths. When the failure is pre-existing runner variance (export ZIP benches above), the correct fix is a targeted `EXCLUDED_FROM_GATE` entry — **not** a `baselines.json` refresh unless you are doing intentional performance work on that bench.
51
53
52
54
-**In scope for the feature PR:** unblocking CI so `mypy` + unit tests + the benchmark job all pass.
53
55
-**Out of scope for the feature PR:** claiming a performance win/loss, changing export behavior, or refreshing baselines for unrelated benches.
0 commit comments