Skip to content

Avoid allocations and no-op work during type inference - #65036

Open
Jake Bailey (jakebailey) wants to merge 3 commits into
microsoft:mainfrom
jakebailey:perf/inference-scratch
Open

Jake Bailey (jakebailey) wants to merge 3 commits into
microsoft:mainfrom
jakebailey:perf/inference-scratch

Conversation

@jakebailey

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

Copy link
Copy Markdown
Member

Thanks Steven (@teamchong) for finding these!

Inferring to a target that cannot contain type variables is a no-op:
inferFromTypes bails out immediately. Several callers nevertheless did
all the work of producing the source side of such a pair before
discovering this, e.g. resolving the source parameter or property type,
or the source signatures and index infos.

Check the target first in applyToParameterTypes, applyToReturnTypes,
and inferFromProperties, and only compute the source type when the
target could receive inferences. Likewise, look up target signatures
and index infos before the source's, and stop early when there are
none, since nothing would be inferred from the source anyway.

Co-authored-by: Steven Chong <25894545+teamchong@users.noreply.github.com>
When a higher priority inference is made for a type parameter, its
existing candidates are discarded. Setting the slices to nil threw away
their backing arrays, so the following appends had to allocate and grow
new ones from scratch.

Truncate the slices instead so the existing capacity is reused. The old
elements are cleared first so the discarded candidate types are not
kept alive by the backing array. Candidate slices are never shared
between inference infos (clones copy them), so reusing them in place is
safe.

Co-authored-by: Steven Chong <25894545+teamchong@users.noreply.github.com>
Several inference helpers build small temporary slices that never
outlive the call: the matched sources and targets in
inferFromMatchingTypes, the single-element source list, matched flags,
and unmatched sources in inferToMultipleTypes, and the true/false branch
pair in inferToConditionalType. These run for nearly every union and
conditional type inference, and each one cost a heap allocation.

Back these slices with small fixed-size arrays so the common cases stay
on the stack, falling back to the heap only when they grow past the
buffer.

Co-authored-by: Steven Chong <25894545+teamchong@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 20:58
@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

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

There are no active review issues for the type-inference optimizations.

No open issues 🎉

What changed in this PR

This PR reduces allocation overhead and unnecessary work in the native TypeScript compiler’s type inference.

Changes:

  • Reuses candidate slice capacity and adds fixed-size buffers for temporary collections.
  • Skips selected inference work when target types cannot contain type variables.
  • Returns early when targets have no relevant signatures or index information.
File Description
tsc/​internal/​checker/​inference.go Optimizes temporary storage and avoids unnecessary type resolution and inference calls.

Review effort: Balanced

Copilot AI commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

One or more custom setup steps configured for this repository failed during this Copilot code review run:

Run {

Setup steps run before each review. If the review above is missing context, or no review was posted at all, the failing step above may be the cause. See the workflow run for failure details, fix your setup steps configuration, and re-request a review.

Note

You can configure setup steps for Copilot code review separately from Copilot cloud agent with a copilot-code-review.yml file. Read the docs for details.

@jakebailey Jake Bailey (jakebailey) added the Domain: Performance Reports of unusually slow behavior label 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

@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,493 +27 (+ 0.03%) ~ ~ p=0.000 n=20
Types 79,607 79,607 ~ ~ ~ p=1.000 n=20
Memory Used 104,122k (± 0.03%) 104,146k (± 0.02%) ~ 104,044k 104,221k p=0.129 n=20
Memory Allocs 1,263,804 (± 0.01%) 1,261,579 (± 0.01%) -2,224 (- 0.18%) 1,261,186 1,262,066 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.024s (± 6.46%) 0.023s (± 2.28%) ~ 0.020s 0.025s p=0.636 n=20
Bind Time 0.009s (± 5.21%) 0.009s (± 5.86%) ~ 0.007s 0.011s p=0.864 n=20
Check Time 0.216s (± 0.82%) 0.218s (± 2.26%) ~ 0.210s 0.254s p=0.835 n=20
Emit Time 0.143s (± 3.25%) 0.144s (± 3.04%) ~ 0.136s 0.175s p=0.514 n=20
Total Time 0.395s (± 1.14%) 0.397s (± 1.98%) ~ 0.385s 0.437s p=0.523 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,561 (± 0.02%) 585,902 (± 0.01%) -659 (- 0.11%) 585,483 586,148 p=0.000 n=20
Types 241,687 (± 0.00%) 240,364 (± 0.00%) -1,323 (- 0.55%) 240,360 240,377 p=0.000 n=20
Memory Used 517,857k (± 0.02%) 517,340k (± 0.02%) -518k (- 0.10%) 516,952k 517,715k p=0.000 n=20
Memory Allocs 7,797,179 (± 0.10%) 7,798,480 (± 0.13%) ~ 7,782,544 7,852,067 p=0.414 n=20
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=20
Parse Time 0.126s (± 2.40%) 0.127s (± 3.25%) ~ 0.114s 0.153s p=0.899 n=20
Bind Time 0.041s (± 5.01%) 0.043s (±10.82%) ~ 0.037s 0.073s p=0.848 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.842s (± 0.92%) 0.844s (± 1.15%) ~ 0.817s 0.894s p=0.909 n=20
Total Time 1.029s (± 1.07%) 1.033s (± 1.37%) ~ 0.998s 1.105s p=0.794 n=20
arktype - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 685,920 685,049 -871 (- 0.13%) ~ ~ p=0.000 n=20
Types 939,467 937,452 -2,015 (- 0.21%) ~ ~ p=0.000 n=20
Memory Used 497,271k (± 0.01%) 496,581k (± 0.01%) -690k (- 0.14%) 496,289k 496,768k p=0.000 n=20
Memory Allocs 12,108,430 (± 0.01%) 12,097,533 (± 0.01%) -10,896 (- 0.09%) 12,093,662 12,105,270 p=0.000 n=20
Config Time 0.001s (± 9.93%) 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.045s (± 5.61%) 0.042s (± 4.35%) 🟩-0.004s (- 8.08%) 0.034s 0.052s p=0.009 n=20
Bind Time 0.013s (± 9.16%) 0.014s (±10.15%) ~ 0.011s 0.021s p=0.332 n=20
Check Time 1.011s (± 1.39%) 1.019s (± 1.63%) ~ 0.972s 1.085s p=0.606 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.099s (± 1.33%) 1.105s (± 1.56%) ~ 1.063s 1.175s p=0.941 n=20
class-transformer - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 45,376 45,375 -1 (- 0.00%) ~ ~ p=0.000 n=20
Types 7,573 7,571 -2 (- 0.03%) ~ ~ p=0.000 n=20
Memory Used 27,832k (± 0.02%) 27,835k (± 0.02%) ~ 27,817k 27,869k p=0.644 n=20
Memory Allocs 248,695 (± 0.06%) 248,602 (± 0.05%) ~ 248,140 249,495 p=0.314 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.011s (± 5.21%) 0.012s (± 3.60%) ~ 0.009s 0.013s p=0.845 n=20
Bind Time 0.003s (± 9.34%) 0.004s (±12.61%) ~ 0.003s 0.006s p=0.820 n=20
Check Time 0.009s (± 5.15%) 0.008s (± 5.46%) ~ 0.007s 0.010s p=0.342 n=20
Emit Time 0.009s (± 5.15%) 0.009s (± 6.37%) ~ 0.007s 0.011s p=0.893 n=20
Total Time 0.033s (± 2.54%) 0.033s (± 2.32%) ~ 0.028s 0.035s p=0.941 n=20
effect - native
Errors 12 12 ~ ~ ~ p=1.000 n=20
Symbols 1,235,115 1,232,218 -2,897 (- 0.23%) ~ ~ p=0.000 n=20
Types 894,113 889,284 -4,829 (- 0.54%) ~ ~ p=0.000 n=20
Memory Used 940,696k (± 0.02%) 938,628k (± 0.02%) -2,068k (- 0.22%) 937,967k 939,396k p=0.000 n=20
Memory Allocs 12,671,793 (± 0.03%) 12,628,482 (± 0.09%) -43,311 (- 0.34%) 12,614,740 12,727,259 p=0.000 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.146s (± 1.72%) 0.150s (± 3.17%) ~ 0.138s 0.185s p=0.198 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.935s (± 1.15%) 0.921s (± 1.04%) -0.015s (- 1.56%) 0.892s 0.971s p=0.045 n=20
Emit Time 0.505s (± 1.86%) 0.492s (± 2.02%) -0.013s (- 2.61%) 0.455s 0.538s p=0.050 n=20
Total Time 1.684s (± 0.68%) 1.663s (± 0.90%) -0.021s (- 1.26%) 1.623s 1.762s p=0.003 n=20
mui-docs - native
Errors 11,405 11,405 ~ ~ ~ p=1.000 n=20
Symbols 3,784,019 3,783,622 -397 (- 0.01%) ~ ~ p=0.000 n=20
Types 1,355,974 1,355,172 -802 (- 0.06%) ~ ~ p=0.000 n=20
Memory Used 1,836,835k (± 0.08%) 1,837,025k (± 0.05%) ~ 1,833,590k 1,841,171k p=0.904 n=20
Memory Allocs 26,012,176 (± 0.14%) 26,002,059 (± 0.12%) ~ 25,907,321 26,139,270 p=0.659 n=20
Config Time 0.008s (± 2.73%) 0.008s (± 2.10%) ~ 0.008s 0.009s p=0.273 n=20
Parse Time 0.293s (± 2.26%) 0.292s (± 2.33%) ~ 0.253s 0.314s p=0.878 n=20
Bind Time 0.001s (±18.96%) 0.001s ~ ~ ~ p=1.000 n=20
Check Time 3.137s (± 1.03%) 3.139s (± 1.22%) ~ 3.059s 3.338s p=0.846 n=20
Emit Time 0.243s (± 1.26%) 0.246s (± 1.55%) ~ 0.232s 0.266s p=0.249 n=20
Total Time 4.180s (± 1.03%) 4.175s (± 1.13%) ~ 4.021s 4.416s p=0.763 n=20
sentry - native
Errors 2 2 ~ ~ ~ p=1.000 n=20
Symbols 4,793,245 4,792,310 -935 (- 0.02%) ~ ~ p=0.000 n=20
Types 2,607,045 2,605,014 -2,031 (- 0.08%) ~ ~ p=0.000 n=20
Memory Used 2,880,957k (± 0.03%) 2,880,256k (± 0.03%) ~ 2,876,855k 2,883,281k p=0.383 n=20
Memory Allocs 75,171,435 (± 0.13%) 75,326,517 (± 0.36%) ~ 74,985,704 77,241,597 p=0.529 n=20
Config Time 0.025s (± 0.87%) 0.025s (± 0.94%) ~ 0.025s 0.026s p=0.514 n=20
Parse Time 0.471s (± 4.43%) 0.475s (± 3.65%) ~ 0.436s 0.591s p=0.344 n=20
Bind Time 0.179s (±10.49%) 0.163s (± 9.07%) ~ 0.133s 0.215s p=0.106 n=20
Check Time 6.636s (± 0.52%) 6.665s (± 0.49%) ~ 6.556s 6.772s p=0.251 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.364s (± 0.45%) 7.379s (± 0.38%) ~ 7.278s 7.473s p=0.441 n=20
social-app - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,883,074 1,882,958 -116 (- 0.01%) ~ ~ p=0.000 n=20
Types 1,158,168 1,157,746 -422 (- 0.04%) ~ ~ p=0.000 n=20
Memory Used 972,449k (± 0.02%) 972,353k (± 0.01%) ~ 972,007k 972,874k p=0.224 n=20
Memory Allocs 13,585,125 (± 0.18%) 13,550,974 (± 0.18%) -34,151 (- 0.25%) 13,488,698 13,695,332 p=0.009 n=20
Config Time 0.008s 0.008s ~ ~ ~ p=1.000 n=20
Parse Time 0.161s (± 2.90%) 0.157s (± 2.01%) ~ 0.143s 0.172s p=0.154 n=20
Bind Time 0.043s (±11.51%) 0.044s (± 9.09%) ~ 0.038s 0.073s p=0.184 n=20
Check Time 1.473s (± 0.51%) 1.471s (± 0.59%) ~ 1.431s 1.511s p=0.899 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.700s (± 0.79%) 1.699s (± 0.55%) ~ 1.666s 1.745s p=0.952 n=20
strada-build-src - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 1,184,972 1,185,075 +103 (+ 0.01%) ~ ~ p=0.000 n=20
Types 438,963 438,895 -68 (- 0.02%) ~ ~ p=0.000 n=20
Memory Used 1,165,134k (± 0.21%) 1,164,879k (± 0.29%) ~ 1,153,857k 1,182,783k p=0.478 n=20
Memory Allocs 47,669,157 (± 0.11%) 47,586,602 (± 0.10%) ~ 47,416,404 47,752,839 p=0.052 n=20
Config Time 0.002s (±13.11%) 0.002s (±10.63%) ~ 0.001s 0.002s p=0.436 n=20
Parse Time 0.140s (± 1.55%) 0.140s (± 1.78%) ~ 0.128s 0.148s p=0.931 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.813s (± 0.34%) 0.809s (± 0.32%) -0.004s (- 0.47%) 0.798s 0.820s p=0.018 n=20
Emit Time 0.140s (± 1.35%) 0.142s (± 1.31%) ~ 0.135s 0.153s p=0.541 n=20
Total Time 9.416s (± 0.42%) 9.416s (± 0.40%) ~ 9.243s 9.611s p=0.718 n=20
strada-compiler - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 263,511 263,551 +40 (+ 0.02%) ~ ~ p=0.000 n=20
Types 196,116 196,114 -2 (- 0.00%) ~ ~ p=0.000 n=20
Memory Used 224,586k (± 0.02%) 224,588k (± 0.02%) ~ 224,467k 224,791k p=0.683 n=20
Memory Allocs 2,401,367 (± 0.02%) 2,395,190 (± 0.01%) -6,178 (- 0.26%) 2,393,864 2,396,667 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.052s (± 2.47%) 0.050s (± 2.90%) ~ 0.043s 0.055s p=0.124 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.377s (± 0.82%) 0.378s (± 0.82%) ~ 0.369s 0.392s p=0.783 n=20
Emit Time 0.050s (± 4.89%) 0.049s (± 5.08%) ~ 0.042s 0.058s p=0.585 n=20
Total Time 0.507s (± 0.54%) 0.505s (± 0.78%) ~ 0.488s 0.520s p=0.304 n=20
t3code-server - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 4,350,661 4,347,001 -3,660 (- 0.08%) ~ ~ p=0.000 n=20
Types 3,040,644 3,032,644 -8,000 (- 0.26%) ~ ~ p=0.000 n=20
Memory Used 2,433,934k (± 0.04%) 2,430,719k (± 0.03%) -3,215k (- 0.13%) 2,429,179k 2,435,890k p=0.000 n=20
Memory Allocs 37,381,017 (± 0.07%) 37,328,928 (± 0.08%) -52,090 (- 0.14%) 37,241,165 37,442,970 p=0.008 n=20
Config Time 0.003s 0.003s ~ ~ ~ p=1.000 n=20
Parse Time 0.263s (± 3.08%) 0.258s (± 1.91%) ~ 0.238s 0.277s p=0.372 n=20
Bind Time 0.088s (± 7.98%) 0.093s (±11.48%) ~ 0.074s 0.148s p=0.804 n=20
Check Time 7.447s (± 1.66%) 7.421s (± 1.51%) ~ 7.142s 7.969s p=0.659 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.812s (± 1.61%) 7.786s (± 1.51%) ~ 7.482s 8.369s p=0.678 n=20
tanstack-router - native
Errors 1 1 ~ ~ ~ p=1.000 n=20
Symbols 571,756 571,642 -114 (- 0.02%) ~ ~ p=0.000 n=20
Types 397,689 397,273 -416 (- 0.10%) ~ ~ p=0.000 n=20
Memory Used 331,435k (± 0.02%) 331,256k (± 0.01%) -179k (- 0.05%) 331,086k 331,454k p=0.000 n=20
Memory Allocs 4,391,319 (± 0.13%) 4,387,049 (± 0.13%) ~ 4,374,495 4,410,604 p=0.096 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.039s (± 2.78%) 0.039s (± 2.61%) ~ 0.035s 0.043s p=0.284 n=20
Bind Time 0.013s (±10.80%) 0.013s (±10.90%) ~ 0.011s 0.023s p=0.491 n=20
Check Time 0.554s (± 0.66%) 0.554s (± 0.61%) ~ 0.542s 0.574s p=0.732 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.626s (± 0.79%) 0.625s (± 0.65%) ~ 0.614s 0.643s p=0.723 n=20
ts-pre-modules - native
Errors 87 87 ~ ~ ~ p=1.000 n=20
Symbols 231,616 231,642 +26 (+ 0.01%) ~ ~ p=0.000 n=20
Types 181,195 181,184 -11 (- 0.01%) ~ ~ p=0.000 n=20
Memory Used 193,516k (± 0.01%) 193,528k (± 0.01%) ~ 193,428k 193,640k p=0.516 n=20
Memory Allocs 1,318,122 (± 0.02%) 1,313,962 (± 0.01%) -4,160 (- 0.32%) 1,313,315 1,314,705 p=0.000 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.044s (± 2.87%) 0.043s (± 3.52%) ~ 0.038s 0.049s p=0.412 n=20
Bind Time 0.021s (± 4.69%) 0.021s (± 5.18%) ~ 0.016s 0.024s p=0.382 n=20
Check Time 0.297s (± 1.06%) 0.292s (± 1.09%) ~ 0.282s 0.304s p=0.062 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.368s (± 0.88%) 0.363s (± 0.92%) ~ 0.347s 0.376s p=0.053 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,504,980 7,501,701 -3,279 (- 0.04%) ~ ~ p=0.000 n=20
Types 4,419,852 4,414,140 -5,712 (- 0.13%) ~ ~ p=0.000 n=20
Memory Used 5,215,396k (± 0.02%) 5,213,909k (± 0.01%) -1,487k (- 0.03%) 5,210,134k 5,216,537k p=0.038 n=20
Memory Allocs 57,132,714 (± 0.03%) 57,112,015 (± 0.02%) -20,699 (- 0.04%) 57,096,452 57,161,323 p=0.006 n=20
Config Time 0.035s (± 0.30%) 0.035s (± 0.65%) ~ 0.035s 0.037s p=0.744 n=20
Parse Time 0.903s (± 1.60%) 0.899s (± 1.47%) ~ 0.811s 0.939s p=0.888 n=20
Bind Time 0.294s (± 1.45%) 0.305s (± 7.45%) ~ 0.285s 0.511s p=0.336 n=20
Check Time 7.098s (± 0.40%) 7.131s (± 0.48%) +0.033s (+ 0.46%) 6.871s 7.228s p=0.014 n=20
Emit Time 2.692s (± 4.43%) 2.625s (± 3.57%) ~ 2.538s 3.461s p=0.899 n=20
Total Time 11.079s (± 0.92%) 11.050s (± 0.72%) ~ 10.944s 11.742s p=0.616 n=20
webpack - native
Errors 616 616 ~ ~ ~ p=1.000 n=20
Symbols 917,188 916,982 -206 (- 0.02%) ~ ~ p=0.000 n=20
Types 636,859 636,464 -395 (- 0.06%) ~ ~ p=0.000 n=20
Memory Used 693,505k (± 0.01%) 693,361k (± 0.02%) ~ 692,893k 693,801k p=0.055 n=20
Memory Allocs 6,499,364 (± 0.05%) 6,493,404 (± 0.03%) -5,960 (- 0.09%) 6,486,784 6,505,988 p=0.001 n=20
Config Time 0.004s (± 2.58%) 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.145s (± 2.82%) 0.143s (± 3.25%) ~ 0.131s 0.164s p=0.372 n=20
Bind Time 0.046s (± 7.59%) 0.049s (± 8.58%) ~ 0.040s 0.071s p=0.423 n=20
Check Time 1.165s (± 0.50%) 1.165s (± 0.82%) ~ 1.133s 1.214s p=0.857 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.385s (± 0.58%) 1.386s (± 0.58%) ~ 1.359s 1.413s p=0.763 n=20
xstate-main - native
Errors 0 0 ~ ~ ~ p=1.000 n=20
Symbols 640,490 640,398 -92 (- 0.01%) ~ ~ p=0.000 n=20
Types 387,984 385,539 -2,445 (- 0.63%) ~ ~ p=0.000 n=20
Memory Used 350,982k (± 0.03%) 350,403k (± 0.03%) -579k (- 0.17%) 350,124k 350,983k p=0.000 n=20
Memory Allocs 3,991,764 (± 0.07%) 3,986,892 (± 0.07%) -4,873 (- 0.12%) 3,978,052 3,998,993 p=0.049 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.056s (± 3.25%) 0.057s (± 2.49%) ~ 0.052s 0.064s p=0.384 n=20
Bind Time 0.022s (±11.03%) 0.020s (±11.81%) ~ 0.017s 0.033s p=0.173 n=20
Check Time 0.426s (± 0.79%) 0.423s (± 0.73%) ~ 0.413s 0.437s p=0.193 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.511s (± 0.78%) 0.506s (± 0.79%) ~ 0.491s 0.521s p=0.128 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

@github-project-automation github-project-automation Bot moved this from Not started to Needs merge in PR Backlog Oct 30, 2026

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: Needs merge

Development

Successfully merging this pull request may close these issues.

3 participants