chore(bench): swap cal.com.tsx for excalidraw App.tsx everywhere#22895
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Merging this PR will degrade performance by 13.99%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | formatter[App.tsx] |
44.5 ms | 51.7 ms | -13.99% |
| 🆕 | Simulation | linter[App.tsx] |
N/A | 169.1 ms | N/A |
| 🆕 | Simulation | minifier[App.tsx] |
N/A | 12.6 ms | N/A |
| 🆕 | Simulation | mangler[App.tsx] |
N/A | 882.4 µs | N/A |
| 🆕 | Simulation | pipeline[App.tsx] |
N/A | 34.2 ms | N/A |
| 🆕 | Simulation | transformer[App.tsx] |
N/A | 7.3 ms | N/A |
| 🆕 | Simulation | codegen[App.tsx] |
N/A | 11.4 ms | N/A |
| 🆕 | Simulation | parser[App.tsx] |
N/A | 8 ms | N/A |
| 🆕 | Simulation | semantic[App.tsx] |
N/A | 5.3 ms | N/A |
| 🆕 | Simulation | lexer[App.tsx] |
N/A | 2.3 ms | N/A |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing chore/bench-app-tsx-all-benchmarks (d555ee6) with main (070eb9e)
Footnotes
-
9 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Merge activity
|
) ## Summary Follow-up to #22590. That PR replaced the synthetic `cal.com.tsx` fixture — a concatenation of Next.js pages that declares top-level names 70–113× and emits thousands of redeclaration diagnostics, inflating semantic `sys_allocs` — with excalidraw's real, single-file `App.tsx`. But it only touched `TestFiles::complicated()` (used by `track_memory_allocations`). This applies the same swap to every remaining benchmark that still used `cal.com.tsx`, and unifies **all** excalidraw `App.tsx` references on one pin (`f6d85bc8`): | File | Change | | --- | --- | | `tasks/common/src/test_file.rs` | `minimal()` (feeds every `tasks/benchmark` criterion bench): `cal.com.tsx` → `App.tsx@f6d85bc8`. `formatter()` re-pinned `@v0.18.0` → `@f6d85bc8` | | `napi/parser/bench.bench.js` | parser benchmark fixture → `App.tsx@f6d85bc8` | | `napi/parser/test/parse-raw.test.ts` | bench-fixture list + size comment → `App.tsx@f6d85bc8` | | `tasks/benchmark/benches/semantic.rs` | rewrote the now-false "`cal.com.tsx` has many errors" comment | | `crates/oxc_ast/src/serialize/mod.rs` | removed the stale `cal.com.tsx` row from the capacity-ratio doc table | ## Why a single pin `get_source_text` caches downloads by the last URL segment only (`App.tsx`). With two different pins live, a single `cargo bench` run would download both into the same `target/App.tsx` and silently bench whichever landed first. Re-pinning `formatter()` to `f6d85bc8` removes that collision — and the pre-existing latent one between `cargo bench` (`@v0.18.0`) and `cargo allocs` (`@f6d85bc8`). ## Notes No committed snapshots change: these fixtures feed only timing benches and a `programRaw.toEqual(programStandard)` self-consistency test; the snapshotted `complicated()` / `minifier()` sets are untouched. --- This PR was prepared with AI assistance; I reviewed, tested, and verified the changes.
d555ee6 to
188b9e6
Compare

Summary
Follow-up to #22590. That PR replaced the synthetic
cal.com.tsxfixture — a concatenation of Next.js pages that declares top-level names 70–113× and emits thousands of redeclaration diagnostics, inflating semanticsys_allocs— with excalidraw's real, single-fileApp.tsx. But it only touchedTestFiles::complicated()(used bytrack_memory_allocations).This applies the same swap to every remaining benchmark that still used
cal.com.tsx, and unifies all excalidrawApp.tsxreferences on one pin (f6d85bc8):tasks/common/src/test_file.rsminimal()(feeds everytasks/benchmarkcriterion bench):cal.com.tsx→App.tsx@f6d85bc8.formatter()re-pinned@v0.18.0→@f6d85bc8napi/parser/bench.bench.jsApp.tsx@f6d85bc8napi/parser/test/parse-raw.test.tsApp.tsx@f6d85bc8tasks/benchmark/benches/semantic.rscal.com.tsxhas many errors" commentcrates/oxc_ast/src/serialize/mod.rscal.com.tsxrow from the capacity-ratio doc tableWhy a single pin
get_source_textcaches downloads by the last URL segment only (App.tsx). With two different pins live, a singlecargo benchrun would download both into the sametarget/App.tsxand silently bench whichever landed first. Re-pinningformatter()tof6d85bc8removes that collision — and the pre-existing latent one betweencargo bench(@v0.18.0) andcargo allocs(@f6d85bc8).Notes
No committed snapshots change: these fixtures feed only timing benches and a
programRaw.toEqual(programStandard)self-consistency test; the snapshottedcomplicated()/minifier()sets are untouched.This PR was prepared with AI assistance; I reviewed, tested, and verified the changes.