Skip to content

Avoid allocations and redundant work when checking calls and object literals - #65040

Open
Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:perf/expression-checking
Open

Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:perf/expression-checking

Conversation

@jakebailey

@jakebailey Jake Bailey (jakebailey) commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Thanks Steven (@teamchong) for finding these!

checkGrammarObjectLiteralExpression allocated a fresh map for every
object literal it checked, even though most literals have zero or one
property and so can never contain duplicate names, and the map is
discarded as soon as the check returns.

Only use a map when duplicates are possible (two or more properties
outside of destructuring), and take it from a small per-checker free
list so that repeated checks reuse the same backing storage. Nested
object literals checked while computing property names take their own
map from the list, so reentrancy is safe. Unusually large maps are not
retained, since Go maps never shrink.

Co-authored-by: Steven Chong <[email protected]>
checkExpressionForMutableLocation first asks isConstContext, which for
literal-like expressions computes the expression's contextual type to
see whether it is a const type parameter. When the answer is no, it
then immediately computed the very same contextual type again to widen
the literal. getContextualType walks up the tree and may consult
resolved signatures, so doing it twice for every literal in a mutable
location is wasted work.

Let an internal variant of isConstContext hand back the contextual type
it computed when that type alone decided the result, and use it for the
widening step instead of recomputing it. When the answer came from an
enclosing node instead, the type is recomputed as before.

Co-authored-by: Steven Chong <[email protected]>
checkObjectLiteral eagerly allocated two symbol tables per literal: one
for the properties of the literal type, and, under strictNullChecks, one
collecting every property to detect properties that a later spread
always overwrites. The latter is only ever consulted when the literal
contains a spread, which most literals do not. Spreads also flush the
current properties into the spread type and replace the table with a
fresh one that frequently ends up unused, for instance when the spread
is the last element.

Allocate the overwrite-tracking table only when the literal contains a
spread, and create the properties table on first use. Also skip mapType
when remapping the final spread type if it is not a union, since there
is only the type itself to inspect.

Co-authored-by: Steven Chong <[email protected]>
Every call resolution allocated a fresh slice for its reordered
candidate signatures, even though the list is only used while that
resolution is in progress (unless signature help asks for it). Call
resolution is one of the hottest paths in the checker, and most calls
have a single candidate, for which the general reordering loop with its
symbol lookups and slice insertions is unnecessary.

Keep a small per-checker free list of candidate slices: a resolution
takes one, and gives it back when it returns. Nested resolutions started
while checking arguments take their own slice from the list, so they
never share storage with an outer resolution in progress. Lists handed
out through candidatesOutArray are never reused. Zero and one
signatures skip the reordering logic entirely, as there is nothing to
reorder.

Co-authored-by: Steven Chong <[email protected]>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 22:26
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Oct 29, 2026
@typescript-automation typescript-automation Bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 29, 2026
@jakebailey

Copy link
Copy Markdown
Member Author

TypeScript Bot (@typescript-bot) perf test this faster

@typescript-automation

typescript-automation Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
perf test this faster ✅ Started 👀 Results

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The popped pool slot is not cleared, allowing the backing array to retain oversized maps and their property-name strings despite the retention limit.

1 open issue
What changed in this PR

This PR reduces allocations and repeated work in the native TypeScript checker when checking calls and object literals.

Changes:

  • Reuse temporary candidate lists and duplicate-property maps.
  • Create object-literal symbol tables lazily and bypass unnecessary type mapping.
  • Reuse contextual types computed during const-context checks.
File Description
tsc/​internal/​checker/​grammarchecks.go Pools duplicate-property maps and skips allocation when duplicate checks are unnecessary.
tsc/​internal/​checker/​checker.go Reuses call-candidate storage and reduces object-literal allocation and contextual-type work.

Review effort: Balanced

Comment thread tsc/internal/checker/grammarchecks.go
A popped entry stayed reachable from the free list's backing array
until it was overwritten. If the borrowed value then grew too large
to be returned to the pool, the stale slot kept it alive anyway,
defeating the retention limit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the checker allocation and reuse optimizations.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@jakebailey Jake Bailey (jakebailey) added the Domain: Performance Reports of unusually slow behavior label Oct 29, 2026
@typescript-automation

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - native
Errors 41 41 ~ ~ ~ p=1.000 n=20
Symbols 88,466 88,466 ~ ~ ~ p=1.000 n=20
Types 79,607 79,607 ~ ~ ~ p=1.000 n=20
Memory Used 104,145k (± 0.03%) 104,345k (± 0.03%) +200k (+ 0.19%) 104,208k 104,445k p=0.000 n=20
Memory Allocs 1,263,768 (± 0.01%) 1,238,386 (± 0.01%) -25,382 (- 2.01%) 1,237,783 1,238,832 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.023s (± 2.70%) 0.023s (± 2.09%) ~ 0.021s 0.025s p=0.105 n=20
Bind Time 0.008s (± 6.37%) 0.008s (± 5.34%) ~ 0.007s 0.010s p=0.599 n=20
Check Time 0.212s (± 0.62%) 0.211s (± 0.72%) ~ 0.205s 0.218s p=0.494 n=20
Emit Time 0.136s (± 0.67%) 0.137s (± 1.03%) ~ 0.132s 0.147s p=0.120 n=20
Total Time 0.382s (± 0.34%) 0.384s (± 0.65%) ~ 0.374s 0.400s p=0.289 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,512 (± 0.01%) 586,525 (± 0.01%) ~ 586,249 586,834 p=0.616 n=20
Types 241,688 (± 0.00%) 241,688 (± 0.00%) ~ 241,683 241,697 p=0.396 n=20
Memory Used 517,898k (± 0.02%) 517,958k (± 0.02%) ~ 517,584k 518,323k p=0.369 n=20
Memory Allocs 7,801,167 (± 0.11%) 7,738,926 (± 0.10%) -62,241 (- 0.80%) 7,726,654 7,789,713 p=0.000 n=20
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=20
Parse Time 0.133s (± 3.66%) 0.133s (± 4.21%) ~ 0.119s 0.159s p=0.856 n=20
Bind Time 0.041s (± 8.00%) 0.045s (± 9.78%) ~ 0.037s 0.069s p=0.162 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.846s (± 0.83%) 0.855s (± 1.34%) ~ 0.827s 0.927s p=0.365 n=20
Total Time 1.039s (± 1.14%) 1.053s (± 1.70%) ~ 1.013s 1.156s p=0.379 n=20
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 685,920 685,920 ~ ~ ~ p=1.000 n=20
Types 939,467 939,467 ~ ~ ~ p=1.000 n=20
Memory Used 497,291k (± 0.01%) 497,299k (± 0.01%) ~ 497,163k 497,562k p=0.578 n=20
Memory Allocs 12,108,020 (± 0.01%) 12,073,505 (± 0.02%) -34,514 (- 0.29%) 12,068,485 12,084,589 p=0.000 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 3.82%) 0.042s (± 3.67%) ~ 0.036s 0.047s p=0.855 n=20
Bind Time 0.013s (±10.16%) 0.013s (± 7.54%) ~ 0.011s 0.018s p=0.817 n=20
Check Time 0.974s (± 0.66%) 0.981s (± 0.68%) ~ 0.948s 1.012s p=0.112 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.059s (± 0.62%) 1.065s (± 0.59%) ~ 1.036s 1.101s p=0.167 n=20
class-transformer - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 45,376 45,376 ~ ~ ~ p=1.000 n=20
Types 7,573 7,573 ~ ~ ~ p=1.000 n=20
Memory Used 27,838k (± 0.02%) 27,840k (± 0.01%) ~ 27,826k 27,858k p=0.440 n=20
Memory Allocs 248,693 (± 0.05%) 245,635 (± 0.05%) -3,058 (- 1.23%) 245,279 246,252 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.011s (± 5.26%) 0.011s (± 5.36%) ~ 0.009s 0.013s p=0.628 n=20
Bind Time 0.004s (±11.18%) 0.003s (± 3.54%) 🟩-0.001s (-19.18%) 0.002s 0.003s p=0.000 n=20
Check Time 0.008s (± 5.55%) 0.008s (± 4.54%) ~ 0.007s 0.010s p=0.075 n=20
Emit Time 0.009s (± 5.07%) 0.008s (± 5.14%) 🟩-0.001s (- 9.55%) 0.007s 0.009s p=0.008 n=20
Total Time 0.032s (± 3.08%) 0.031s (± 2.12%) ~ 0.029s 0.033s p=0.140 n=20
effect - native
Errors 12 12 ~ ~ ~ p=1.000 n=20
Symbols 1,235,115 1,235,115 ~ ~ ~ p=1.000 n=20
Types 894,113 894,113 ~ ~ ~ p=1.000 n=20
Memory Used 940,629k (± 0.02%) 940,579k (± 0.02%) ~ 939,791k 941,198k p=0.846 n=20
Memory Allocs 12,678,412 (± 0.07%) 12,581,167 (± 0.02%) -97,245 (- 0.77%) 12,573,226 12,594,441 p=0.000 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.148s (± 1.52%) 0.147s (± 1.48%) ~ 0.138s 0.153s p=1.000 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.936s (± 0.68%) 0.937s (± 0.78%) ~ 0.906s 0.967s p=0.963 n=20
Emit Time 0.507s (± 1.51%) 0.504s (± 1.74%) ~ 0.459s 0.530s p=0.713 n=20
Total Time 1.688s (± 0.46%) 1.684s (± 0.54%) ~ 1.629s 1.726s p=0.533 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,784,019 3,784,019 ~ ~ ~ p=1.000 n=20
Types 1,355,974 1,355,973 -1 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 1,837,615k (± 0.11%) 1,837,386k (± 0.07%) ~ 1,832,330k 1,843,934k p=0.602 n=20
Memory Allocs 26,012,739 (± 0.08%) 25,833,004 (± 0.11%) -179,736 (- 0.69%) 25,755,903 25,984,823 p=0.000 n=20
Config Time 0.008s (± 1.77%) 0.008s (± 2.10%) ~ 0.008s 0.009s p=1.000 n=20
Parse Time 0.294s (± 2.45%) 0.285s (± 1.56%) ~ 0.262s 0.300s p=0.051 n=20
Bind Time 0.001s (± 9.93%) 0.001s (±18.96%) ~ 0.001s 0.003s p=1.000 n=20
Check Time 3.068s (± 0.77%) 3.085s (± 1.13%) ~ 3.016s 3.300s p=0.723 n=20
Emit Time 0.238s (± 1.39%) 0.241s (± 1.40%) ~ 0.231s 0.262s p=0.343 n=20
Total Time 4.104s (± 0.90%) 4.105s (± 1.02%) ~ 4.022s 4.362s p=0.683 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,245 4,793,245 ~ ~ ~ p=1.000 n=20
Types 2,607,045 2,603,266 -3,779 (- 0.14%) ~ ~ p=0.000 n=20
Memory Used 2,881,448k (± 0.04%) 2,880,472k (± 0.03%) ~ 2,878,406k 2,884,691k p=0.157 n=20
Memory Allocs 75,436,799 (± 0.33%) 74,384,514 (± 0.18%) -1,052,285 (- 1.39%) 74,009,508 75,370,029 p=0.000 n=20
Config Time 0.025s (± 1.03%) 0.025s (± 0.58%) ~ 0.024s 0.025s p=0.826 n=20
Parse Time 0.484s (± 2.90%) 0.486s (± 4.10%) ~ 0.431s 0.601s p=0.743 n=20
Bind Time 0.163s (± 9.27%) 0.166s (± 9.55%) ~ 0.140s 0.250s p=0.488 n=20
Check Time 6.862s (± 0.52%) 6.882s (± 0.64%) ~ 6.744s 7.102s p=0.507 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.584s (± 0.44%) 7.611s (± 0.51%) ~ 7.481s 7.781s p=0.324 n=20
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,883,074 1,883,074 ~ ~ ~ p=1.000 n=20
Types 1,158,168 1,158,168 ~ ~ ~ p=1.000 n=20
Memory Used 972,381k (± 0.02%) 972,355k (± 0.01%) ~ 971,932k 972,745k p=0.784 n=20
Memory Allocs 13,587,000 (± 0.24%) 13,462,592 (± 0.29%) -124,408 (- 0.92%) 13,384,306 13,725,284 p=0.000 n=20
Config Time 0.008s (± 3.84%) 0.008s (± 4.89%) ~ 0.008s 0.011s p=0.605 n=20
Parse Time 0.175s (± 1.98%) 0.178s (± 3.95%) ~ 0.162s 0.229s p=0.878 n=20
Bind Time 0.046s (± 7.60%) 0.049s (±10.12%) ~ 0.040s 0.075s p=0.438 n=20
Check Time 1.565s (± 0.67%) 1.554s (± 0.77%) ~ 1.508s 1.616s p=0.167 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.813s (± 0.73%) 1.808s (± 0.63%) ~ 1.774s 1.860s p=0.569 n=20
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,184,972 1,184,972 ~ ~ ~ p=1.000 n=20
Types 438,963 438,963 ~ ~ ~ p=1.000 n=20
Memory Used 1,166,611k (± 0.31%) 1,167,217k (± 0.34%) ~ 1,155,060k 1,183,344k p=0.947 n=20
Memory Allocs 47,679,814 (± 0.09%) 46,666,261 (± 0.14%) -1,013,553 (- 2.13%) 46,467,610 46,909,485 p=0.000 n=20
Config Time 0.002s (±15.67%) 0.002s (±19.90%) ~ 0.000s 0.003s p=0.602 n=20
Parse Time 0.149s (± 5.09%) 0.147s (± 4.24%) ~ 0.132s 0.194s p=0.568 n=20
Bind Time 0.000s 0.000s (±208.60%) ~ 0.000s 0.004s p=1.000 n=20
Check Time 0.840s (± 0.87%) 0.850s (± 1.25%) ~ 0.816s 0.902s p=0.140 n=20
Emit Time 0.146s (± 3.36%) 0.149s (± 3.02%) ~ 0.138s 0.170s p=0.364 n=20
Total Time 9.807s (± 0.94%) 9.884s (± 1.36%) ~ 9.491s 10.849s p=0.383 n=20
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 263,511 263,511 ~ ~ ~ p=1.000 n=20
Types 196,116 196,116 ~ ~ ~ p=1.000 n=20
Memory Used 224,576k (± 0.02%) 224,664k (± 0.02%) +88k (+ 0.04%) 224,507k 224,937k p=0.044 n=20
Memory Allocs 2,401,186 (± 0.01%) 2,338,191 (± 0.01%) -62,995 (- 2.62%) 2,337,032 2,339,286 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.054s (± 2.91%) 0.053s (± 3.30%) ~ 0.046s 0.061s p=0.691 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.411s (± 1.23%) 0.406s (± 0.55%) ~ 0.399s 0.417s p=0.416 n=20
Emit Time 0.050s (± 5.76%) 0.049s (± 5.19%) ~ 0.043s 0.058s p=0.466 n=20
Total Time 0.545s (± 1.01%) 0.538s (± 0.76%) -0.007s (- 1.28%) 0.524s 0.557s p=0.043 n=20
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 4,350,661 4,350,661 ~ ~ ~ p=1.000 n=20
Types 3,040,644 3,040,644 ~ ~ ~ p=1.000 n=20
Memory Used 2,434,099k (± 0.02%) 2,434,017k (± 0.03%) ~ 2,431,855k 2,436,846k p=0.678 n=20
Memory Allocs 37,398,619 (± 0.17%) 36,780,166 (± 0.10%) -618,454 (- 1.65%) 36,685,276 37,045,923 p=0.000 n=20
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=20
Parse Time 0.259s (± 2.37%) 0.259s (± 2.35%) ~ 0.231s 0.286s p=0.732 n=20
Bind Time 0.087s (± 7.35%) 0.089s (± 9.60%) ~ 0.076s 0.140s p=0.783 n=20
Check Time 7.877s (± 1.33%) 7.832s (± 0.77%) ~ 7.629s 8.152s p=0.774 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 8.239s (± 1.33%) 8.194s (± 0.77%) ~ 7.978s 8.512s p=0.805 n=20
tanstack-router - native
Errors 1 1 ~ ~ ~ p=1.000 n=20
Symbols 571,756 571,756 ~ ~ ~ p=1.000 n=20
Types 397,689 397,689 ~ ~ ~ p=1.000 n=20
Memory Used 331,398k (± 0.01%) 331,444k (± 0.02%) ~ 331,245k 331,647k p=0.176 n=20
Memory Allocs 4,388,891 (± 0.12%) 4,338,471 (± 0.14%) -50,420 (- 1.15%) 4,323,822 4,367,198 p=0.000 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.040s (± 3.24%) 0.040s (± 3.25%) ~ 0.036s 0.046s p=0.453 n=20
Bind Time 0.012s (± 7.70%) 0.012s (± 9.72%) ~ 0.010s 0.020s p=0.657 n=20
Check Time 0.555s (± 0.73%) 0.555s (± 0.60%) ~ 0.543s 0.568s p=0.794 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.626s (± 0.77%) 0.627s (± 0.59%) ~ 0.614s 0.641s p=0.490 n=20
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=20
Symbols 231,616 231,616 ~ ~ ~ p=1.000 n=20
Types 181,195 181,195 ~ ~ ~ p=1.000 n=20
Memory Used 193,535k (± 0.02%) 193,562k (± 0.01%) ~ 193,479k 193,659k p=0.159 n=20
Memory Allocs 1,318,107 (± 0.01%) 1,263,904 (± 0.02%) 🟩-54,203 (- 4.11%) 1,262,917 1,264,880 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.047s (± 2.32%) 0.047s (± 4.39%) ~ 0.041s 0.061s p=0.887 n=20
Bind Time 0.022s (± 6.28%) 0.023s (± 7.46%) ~ 0.018s 0.035s p=0.941 n=20
Check Time 0.334s (± 2.88%) 0.333s (± 2.05%) ~ 0.305s 0.354s p=0.867 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.410s (± 2.65%) 0.410s (± 1.90%) ~ 0.381s 0.432s p=0.794 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,475,710 7,475,710 ~ ~ ~ p=1.000 n=20
Types 4,374,355 4,374,355 ~ ~ ~ p=1.000 n=20
Memory Used 5,193,347k (± 0.02%) 5,192,694k (± 0.02%) ~ 5,190,355k 5,195,582k p=0.277 n=20
Memory Allocs 56,787,891 (± 0.03%) 54,347,561 (± 0.03%) 🟩-2,440,330 (- 4.30%) 54,323,708 54,453,606 p=0.000 n=20
Config Time 0.037s (± 1.34%) 0.037s (± 1.56%) ~ 0.035s 0.040s p=0.995 n=20
Parse Time 0.929s (± 1.62%) 0.936s (± 2.27%) ~ 0.830s 1.002s p=0.298 n=20
Bind Time 0.322s (± 1.73%) 0.335s (± 5.37%) ~ 0.297s 0.445s p=0.433 n=20
Check Time 8.041s (± 1.11%) 8.025s (± 1.16%) ~ 7.597s 8.442s p=0.989 n=20
Emit Time 2.792s (± 4.25%) 2.796s (± 4.74%) ~ 2.620s 3.615s p=0.753 n=20
Total Time 12.180s (± 1.13%) 12.188s (± 1.08%) ~ 11.811s 12.715s p=0.947 n=20
webpack - native
Errors 616 616 ~ ~ ~ p=1.000 n=20
Symbols 917,188 917,188 ~ ~ ~ p=1.000 n=20
Types 636,859 636,859 ~ ~ ~ p=1.000 n=20
Memory Used 693,543k (± 0.01%) 693,466k (± 0.02%) ~ 693,077k 694,124k p=0.229 n=20
Memory Allocs 6,501,930 (± 0.05%) 6,381,866 (± 0.06%) -120,064 (- 1.85%) 6,371,003 6,402,666 p=0.000 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.140s (± 4.16%) 0.140s (± 3.29%) ~ 0.126s 0.155s p=0.804 n=20
Bind Time 0.050s (±12.80%) 0.042s (± 5.63%) ~ 0.037s 0.057s p=0.191 n=20
Check Time 1.124s (± 0.53%) 1.126s (± 0.63%) ~ 1.102s 1.175s p=0.703 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.341s (± 0.71%) 1.335s (± 0.49%) ~ 1.312s 1.367s p=0.402 n=20
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 640,490 640,490 ~ ~ ~ p=1.000 n=20
Types 387,984 387,984 ~ ~ ~ p=1.000 n=20
Memory Used 350,974k (± 0.02%) 350,926k (± 0.02%) ~ 350,775k 351,279k p=0.398 n=20
Memory Allocs 3,994,874 (± 0.07%) 3,915,109 (± 0.08%) -79,766 (- 2.00%) 3,902,674 3,927,651 p=0.000 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.059s (± 2.35%) 0.060s (± 2.66%) ~ 0.056s 0.067s p=0.220 n=20
Bind Time 0.021s (± 9.73%) 0.020s (±11.18%) ~ 0.017s 0.034s p=0.685 n=20
Check Time 0.415s (± 0.78%) 0.415s (± 0.95%) ~ 0.402s 0.434s p=0.931 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.500s (± 0.91%) 0.502s (± 0.99%) ~ 0.484s 0.520s p=0.625 n=20
System info unknown
Hosts
  • native
Scenarios
  • Compiler-Unions - native
  • angular-1 - native
  • arktype - native
  • class-transformer - native
  • effect - native
  • mui-docs - native
  • sentry - native
  • social-app - native
  • strada-build-src - native
  • strada-compiler - native
  • t3code-server - native
  • tanstack-router - native
  • ts-pre-modules - native
  • vscode - native
  • webpack - native
  • xstate-main - native
Benchmark Name Iterations
Current pr 20
Baseline baseline 20

Developer Information:

Download Benchmarks

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Author: Team Domain: Performance Reports of unusually slow behavior For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Status: Not started

Development

Successfully merging this pull request may close these issues.

2 participants