Commit 8b8b93c
authored
fix(benchmarks): dedicated WASM timing tolerance in regression guard (#1255)
* fix(benchmarks): exempt 3.11.1 No-op rebuild and Full build wasm CI noise
The publish-time regression guard tripped on two more WASM timing metrics
that are CI runner noise, not real regressions:
- No-op rebuild (build): 15 → 25 (+67%), a 10ms delta at the noise floor
on a sub-30ms NOISY metric; historical wasm range is 5–22ms.
- Full build (incremental): 7664 → 9833 (+28%); wasm full-build history
spans 7.2s–14.0s, so 9.8s is inside the envelope.
Native figures did not trip and no build/incremental codepath changed
between 3.10.0 and 3.11.1, confirming runner variance. Same shape and
root cause as the existing 3.10.0/3.11.0 No-op rebuild and Full build
exemptions. Remove once 3.12.0+ data is captured against a committed
3.11.x baseline.
* fix(benchmarks): add dedicated WASM timing tolerance to regression guard
Replaces the per-version, per-metric KNOWN_REGRESSIONS whack-a-mole for
WASM timing noise with a structural fix: timing metrics measured under the
WASM engine get a wider WASM_TIMING_THRESHOLD (70%) via an engine-aware
thresholdFor.
WASM wall-clock is 3-5x slower than native and dominated by interpreter +
GC overhead, so identical shared-runner jitter lands as a far larger
percentage swing (observed +27-67% run-to-run on byte-identical code). The
native engine shares all extraction/resolution/query logic and keeps the
strict 25%/50% thresholds, so it remains the canary for real regressions;
the WASM widening still flags the 100-220% catastrophes the guard exists to
catch. Size metrics (DB bytes/file) are engine-independent and excluded via
SIZE_METRICS so they keep the strict threshold.
Removes the now-superseded 3.11.1 No-op rebuild and Full build entries (both
WASM-only timing trips). The remaining 3.11.x entries are kept: fnDeps depth
3/5 trip the native engine too (24.3->34.7, 24.7->34.7) and DB bytes/file is
a size metric — neither is covered by the WASM widening.
Verified by injecting the publish-run 3.11.1 numbers: the guard passes with
the widening and fails on exactly No-op rebuild + Full build without it.1 parent d93b257 commit 8b8b93c
1 file changed
Lines changed: 49 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
66 | 99 | | |
67 | 100 | | |
68 | 101 | | |
| |||
268 | 301 | | |
269 | 302 | | |
270 | 303 | | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
271 | 310 | | |
272 | 311 | | |
273 | 312 | | |
| |||
465 | 504 | | |
466 | 505 | | |
467 | 506 | | |
468 | | - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
469 | 511 | | |
470 | 512 | | |
471 | 513 | | |
472 | 514 | | |
473 | 515 | | |
474 | 516 | | |
475 | 517 | | |
| 518 | + | |
476 | 519 | | |
477 | 520 | | |
478 | 521 | | |
479 | | - | |
| 522 | + | |
480 | 523 | | |
481 | 524 | | |
482 | 525 | | |
| |||
497 | 540 | | |
498 | 541 | | |
499 | 542 | | |
500 | | - | |
| 543 | + | |
501 | 544 | | |
502 | 545 | | |
503 | 546 | | |
| |||
650 | 693 | | |
651 | 694 | | |
652 | 695 | | |
| 696 | + | |
653 | 697 | | |
654 | 698 | | |
655 | 699 | | |
| |||
688 | 732 | | |
689 | 733 | | |
690 | 734 | | |
| 735 | + | |
691 | 736 | | |
692 | 737 | | |
693 | 738 | | |
| |||
718 | 763 | | |
719 | 764 | | |
720 | 765 | | |
| 766 | + | |
721 | 767 | | |
722 | 768 | | |
723 | 769 | | |
| |||
0 commit comments