Skip to content

Cache type classification answers on types - #65042

Open
Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:perf/type-fact-bits
Open

Jake Bailey (jakebailey) wants to merge 5 commits into
microsoft:mainfrom
jakebailey:perf/type-fact-bits

Conversation

@jakebailey

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

Copy link
Copy Markdown
Member

Thanks Steven (@teamchong) for finding these!

resolveStructuredTypeMembers is called on nearly every property,
signature and index lookup, and almost always finds the members already
resolved. Because the resolution switch lived in the same function, the
whole thing was too large to inline, so every lookup paid for a call
just to test one flag.

Move the resolution switch into a separate worker so the remaining
resolved-bit check and cast fit in the inlining budget. To get under the
budget, AsStructuredType now only checks the lower bound of the kind
range, which is sufficient because intersection is the last type kind.

Co-authored-by: Steven Chong <[email protected]>
Type has a byte of padding after its kind. Use it for a small set of
internal flags that record answers which never change for a type.

shouldNormalizeIntersection is asked repeatedly for the same
intersections during relation checking and rescans every constituent
each time. Its answer depends only on constituent flags and on whether
anonymous constituents are empty, so remember it once those answers are
final. Some member resolvers publish empty members before resolution
finishes, so a bit now marks types whose members are still being
resolved, and the result is not cached while any anonymous constituent
is unresolved or mid-resolution.

Unions whose constituents are all definitely non-nullable and not
instantiable can never produce undefined/null type facts. Record this
when the union is created, so that getTypeFacts can skip walking the
constituents when the caller only asks about nullability, as it already
does for object types.

Co-authored-by: Steven Chong <[email protected]>
isWeakType runs for the target of nearly every assignability check
against an object type, and each time it re-examines the signatures,
index infos and every property of the target, which for large
interfaces is a full walk of the member list. The classification is a
fixed property of the type once its members are resolved, so remember
it in the type's cache flags.

The answer is cached only when the members are fully resolved (not
published early by an in-progress resolver) and the properties came
from the type itself rather than a different apparent type. When
getBaseTypes resets partially resolved members of a class or
interface, the cached answer is reset along with them.

Co-authored-by: Steven Chong <[email protected]>
Every relation cache key computation calls
isTypeReferenceWithGenericArguments on both the source and the target,
and the check recursively walks all type arguments of nested type
references. For deeply nested generic references this repeats the same
walk on every relation check involving them.

The type arguments of a non-deferred type reference are fixed when it
is created, so the answer never changes. Remember it in the type's
cache flags so later calls are a flag test.

Co-authored-by: Steven Chong <[email protected]>
getSingleBaseForNonAugmentingSubtype is called for every pair of type
references during relation checks. Once computed, the common answer is
that there is no single equivalent base type, yet each call still did a
map lookup to find that out.

Set IdenticalBaseTypeExists when a base is actually cached, as Strada
does, so a computed reference without one returns immediately and only
the positive case consults the map.

Co-authored-by: Steven Chong <[email protected]>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 22:37
@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.

🔵 Needs a closer look

The cache changes affect reentrant member resolution, and their lifetime assumptions require compiler regression-suite validation that cannot be run in this review environment.

No open issues 🎉

What changed in this PR

This PR reduces repeated type-classification work in the native TypeScript checker by caching answers directly on types, with safeguards for members that are still being resolved.

Changes:

  • Adds compact cache flags within existing Type padding.
  • Caches generic-argument, weak-type, and intersection-normalization checks.
  • Adds shortcuts for non-nullable union facts and absent equivalent base types.
File Description
tsc/​internal/​checker/​types.go Defines cache flags and simplifies the structured-type kind check.
tsc/​internal/​checker/​relater.go Caches weak-type results when member resolution is final.
tsc/​internal/​checker/​checker.go Implements classification caches, resolution tracking, invalidation, and lookup shortcuts.

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,151k (± 0.02%) 104,153k (± 0.03%) ~ 104,034k 104,231k p=0.799 n=20
Memory Allocs 1,263,826 (± 0.01%) 1,263,835 (± 0.01%) ~ 1,263,330 1,264,472 p=0.883 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.024s (± 2.48%) 0.023s (± 2.90%) ~ 0.021s 0.026s p=0.333 n=20
Bind Time 0.009s (± 6.20%) 0.009s (± 6.32%) ~ 0.008s 0.013s p=0.579 n=20
Check Time 0.222s (± 2.30%) 0.218s (± 3.40%) -0.003s (- 1.49%) 0.208s 0.271s p=0.000 n=20
Emit Time 0.143s (± 0.77%) 0.144s (± 2.50%) ~ 0.137s 0.173s p=0.984 n=20
Total Time 0.401s (± 1.57%) 0.398s (± 2.66%) -0.002s (- 0.55%) 0.385s 0.484s p=0.002 n=20
angular-1 - native
Errors 3 3 ~ ~ ~ p=1.000 n=20
Symbols 586,519 (± 0.01%) 586,456 (± 0.01%) ~ 586,140 586,712 p=0.199 n=20
Types 241,687 (± 0.00%) 241,687 (± 0.00%) ~ 241,683 241,698 p=0.355 n=20
Memory Used 517,991k (± 0.02%) 517,878k (± 0.01%) ~ 517,565k 518,129k p=0.096 n=20
Memory Allocs 7,800,361 (± 0.17%) 7,793,356 (± 0.06%) ~ 7,785,754 7,829,081 p=0.620 n=20
Config Time 0.009s 0.009s ~ ~ ~ p=1.000 n=20
Parse Time 0.131s (± 4.56%) 0.125s (± 2.50%) ~ 0.113s 0.135s p=0.323 n=20
Bind Time 0.043s (±10.51%) 0.047s (±11.26%) ~ 0.038s 0.069s p=0.118 n=20
Check Time 0s 0s ~ ~ ~ p=1.000 n=20
Emit Time 0.852s (± 1.75%) 0.852s (± 0.99%) ~ 0.824s 0.884s p=0.507 n=20
Total Time 1.045s (± 1.78%) 1.044s (± 1.17%) ~ 1.015s 1.085s p=0.644 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,278k (± 0.01%) 497,258k (± 0.01%) ~ 497,066k 497,459k p=0.417 n=20
Memory Allocs 12,109,194 (± 0.02%) 12,108,885 (± 0.02%) ~ 12,104,066 12,118,804 p=0.968 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 4.32%) 0.043s (± 3.20%) ~ 0.038s 0.048s p=0.539 n=20
Bind Time 0.013s (± 8.32%) 0.014s (±10.07%) ~ 0.012s 0.020s p=0.681 n=20
Check Time 1.016s (± 0.66%) 1.001s (± 0.63%) -0.015s (- 1.46%) 0.972s 1.029s p=0.002 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.104s (± 0.58%) 1.088s (± 0.58%) -0.016s (- 1.44%) 1.061s 1.109s p=0.001 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,835k (± 0.02%) 27,835k (± 0.02%) ~ 27,815k 27,863k p=0.878 n=20
Memory Allocs 248,602 (± 0.04%) 248,506 (± 0.06%) ~ 247,894 249,319 p=0.204 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.011s (± 5.56%) 0.011s (± 4.46%) ~ 0.009s 0.013s p=0.689 n=20
Bind Time 0.003s (±10.28%) 0.003s (± 8.07%) ~ 0.003s 0.005s p=0.919 n=20
Check Time 0.008s (± 3.58%) 0.008s (± 5.25%) ~ 0.007s 0.010s p=0.119 n=20
Emit Time 0.008s (± 5.80%) 0.008s (± 6.60%) ~ 0.007s 0.010s p=0.722 n=20
Total Time 0.031s (± 2.70%) 0.032s (± 2.12%) ~ 0.029s 0.033s p=0.320 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,553k (± 0.02%) 940,646k (± 0.03%) ~ 939,720k 941,755k p=0.583 n=20
Memory Allocs 12,669,768 (± 0.02%) 12,671,308 (± 0.03%) ~ 12,663,512 12,690,831 p=0.799 n=20
Config Time 0.002s 0.002s ~ ~ ~ p=1.000 n=20
Parse Time 0.148s (± 1.59%) 0.147s (± 1.48%) ~ 0.140s 0.157s p=0.372 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.933s (± 0.72%) 0.923s (± 0.66%) -0.010s (- 1.06%) 0.900s 0.947s p=0.026 n=20
Emit Time 0.507s (± 2.15%) 0.522s (± 4.84%) ~ 0.461s 0.737s p=0.763 n=20
Total Time 1.684s (± 0.58%) 1.691s (± 1.57%) ~ 1.648s 1.923s p=0.394 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,974 ~ ~ ~ p=1.000 n=20
Memory Used 1,836,608k (± 0.07%) 1,836,424k (± 0.07%) ~ 1,829,441k 1,840,177k p=0.718 n=20
Memory Allocs 25,980,436 (± 0.12%) 25,981,113 (± 0.11%) ~ 25,899,275 26,124,498 p=0.925 n=20
Config Time 0.008s 0.008s ~ ~ ~ p=1.000 n=20
Parse Time 0.293s (± 2.11%) 0.290s (± 1.78%) ~ 0.276s 0.322s p=0.304 n=20
Bind Time 0.001s (±18.96%) 0.001s ~ ~ ~ p=1.000 n=20
Check Time 3.138s (± 0.58%) 3.134s (± 0.85%) ~ 3.075s 3.342s p=0.425 n=20
Emit Time 0.247s (± 1.70%) 0.245s (± 1.33%) ~ 0.236s 0.258s p=0.569 n=20
Total Time 4.189s (± 0.63%) 4.174s (± 0.72%) ~ 4.089s 4.396s p=0.274 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,607,045 ~ ~ ~ p=1.000 n=20
Memory Used 2,880,943k (± 0.02%) 2,880,931k (± 0.02%) ~ 2,879,571k 2,885,706k p=0.904 n=20
Memory Allocs 75,271,962 (± 0.19%) 75,327,708 (± 0.24%) ~ 74,809,688 76,097,403 p=0.678 n=20
Config Time 0.026s (± 1.19%) 0.026s (± 1.00%) ~ 0.025s 0.027s p=0.762 n=20
Parse Time 0.484s (± 3.16%) 0.500s (± 4.65%) ~ 0.438s 0.630s p=0.208 n=20
Bind Time 0.161s (±10.34%) 0.173s (±10.57%) ~ 0.140s 0.238s p=0.279 n=20
Check Time 6.831s (± 0.50%) 6.778s (± 0.55%) -0.053s (- 0.78%) 6.657s 6.930s p=0.039 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.553s (± 0.49%) 7.529s (± 0.52%) ~ 7.396s 7.677s p=0.449 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,408k (± 0.02%) 972,399k (± 0.01%) ~ 971,239k 972,874k p=0.888 n=20
Memory Allocs 13,579,674 (± 0.14%) 13,606,268 (± 0.31%) ~ 13,523,688 13,853,997 p=0.698 n=20
Config Time 0.008s 0.008s (± 1.30%) ~ 0.008s 0.009s p=1.000 n=20
Parse Time 0.159s (± 2.32%) 0.164s (± 2.51%) ~ 0.148s 0.182s p=0.092 n=20
Bind Time 0.046s (±11.23%) 0.045s (± 8.45%) ~ 0.039s 0.066s p=0.242 n=20
Check Time 1.492s (± 0.69%) 1.478s (± 0.84%) ~ 1.430s 1.533s p=0.092 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.721s (± 0.82%) 1.713s (± 0.82%) ~ 1.664s 1.783s p=0.465 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,170,883k (± 0.60%) 1,167,987k (± 0.26%) ~ 1,155,560k 1,188,764k p=0.862 n=20
Memory Allocs 47,721,096 (± 0.11%) 47,739,426 (± 0.10%) ~ 47,597,872 48,026,484 p=0.640 n=20
Config Time 0.002s (±16.91%) 0.002s (±18.20%) ~ 0.000s 0.002s p=0.229 n=20
Parse Time 0.140s (± 1.94%) 0.140s (± 1.23%) ~ 0.133s 0.146s p=0.514 n=20
Bind Time 0.000s (±143.57%) 0.000s ~ ~ ~ p=0.487 n=20
Check Time 0.837s (± 1.19%) 0.832s (± 0.87%) ~ 0.816s 0.872s p=0.267 n=20
Emit Time 0.145s (± 2.08%) 0.145s (± 1.41%) ~ 0.140s 0.157s p=0.835 n=20
Total Time 9.696s (± 1.24%) 9.633s (± 1.02%) ~ 9.425s 10.275s p=0.331 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,624k (± 0.02%) 224,587k (± 0.02%) ~ 224,448k 224,697k p=0.242 n=20
Memory Allocs 2,401,710 (± 0.01%) 2,401,414 (± 0.01%) ~ 2,399,640 2,402,598 p=0.327 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.050s (± 2.70%) 0.052s (± 3.46%) ~ 0.045s 0.058s p=0.138 n=20
Bind Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Check Time 0.397s (± 0.90%) 0.393s (± 1.29%) ~ 0.378s 0.428s p=0.053 n=20
Emit Time 0.048s (± 5.63%) 0.051s (± 4.61%) ~ 0.043s 0.058s p=0.078 n=20
Total Time 0.523s (± 0.88%) 0.525s (± 1.20%) ~ 0.507s 0.569s p=0.888 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,433,944k (± 0.04%) 2,433,389k (± 0.02%) ~ 2,432,109k 2,436,461k p=0.380 n=20
Memory Allocs 37,415,107 (± 0.13%) 37,373,584 (± 0.06%) ~ 37,308,580 37,464,783 p=0.265 n=20
Config Time 0.003s (± 6.00%) 0.003s (± 6.84%) ~ 0.002s 0.003s p=1.000 n=20
Parse Time 0.252s (± 2.15%) 0.249s (± 1.75%) ~ 0.233s 0.272s p=0.364 n=20
Bind Time 0.088s (±11.03%) 0.079s (± 4.76%) ~ 0.073s 0.112s p=0.055 n=20
Check Time 7.140s (± 0.37%) 7.026s (± 0.36%) -0.115s (- 1.61%) 6.962s 7.154s p=0.000 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 7.492s (± 0.36%) 7.367s (± 0.38%) -0.125s (- 1.67%) 7.297s 7.508s p=0.000 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,435k (± 0.01%) 331,451k (± 0.01%) ~ 331,193k 331,642k p=0.344 n=20
Memory Allocs 4,389,047 (± 0.12%) 4,395,061 (± 0.19%) ~ 4,376,848 4,439,355 p=0.461 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.042s (± 3.80%) 0.040s (± 4.26%) ~ 0.034s 0.049s p=0.138 n=20
Bind Time 0.013s (± 9.09%) 0.014s (±12.31%) ~ 0.011s 0.022s p=0.683 n=20
Check Time 0.574s (± 1.05%) 0.572s (± 0.57%) ~ 0.564s 0.590s p=0.135 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.650s (± 1.00%) 0.648s (± 0.67%) ~ 0.636s 0.673s p=0.323 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,533k (± 0.01%) 193,523k (± 0.01%) ~ 193,429k 193,612k p=0.387 n=20
Memory Allocs 1,318,367 (± 0.02%) 1,318,211 (± 0.01%) ~ 1,317,599 1,319,239 p=0.602 n=20
Config Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Parse Time 0.044s (± 3.15%) 0.043s (± 2.37%) ~ 0.039s 0.049s p=0.413 n=20
Bind Time 0.020s (± 6.22%) 0.022s (± 4.63%) 🔻+0.002s (+11.00%) 0.019s 0.027s p=0.008 n=20
Check Time 0.294s (± 0.90%) 0.290s (± 0.99%) ~ 0.280s 0.298s p=0.072 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.364s (± 0.64%) 0.362s (± 0.73%) ~ 0.352s 0.371s p=0.309 n=20
vscode - native
Errors 11 11 ~ ~ ~ p=1.000 n=20
Symbols 7,480,295 7,480,295 ~ ~ ~ p=1.000 n=20
Types 4,389,939 4,389,939 ~ ~ ~ p=1.000 n=20
Memory Used 5,201,136k (± 0.01%) 5,200,833k (± 0.02%) ~ 5,197,695k 5,204,394k p=0.565 n=20
Memory Allocs 56,960,948 (± 0.02%) 56,965,822 (± 0.02%) ~ 56,939,077 57,036,993 p=0.620 n=20
Config Time 0.034s (± 3.15%) 0.033s (± 0.90%) ~ 0.032s 0.035s p=0.983 n=20
Parse Time 0.906s (± 3.02%) 0.895s (± 1.81%) ~ 0.825s 1.002s p=0.784 n=20
Bind Time 0.307s (± 5.32%) 0.316s (± 7.80%) ~ 0.291s 0.495s p=0.364 n=20
Check Time 7.391s (± 0.52%) 7.359s (± 0.68%) ~ 7.142s 7.594s p=0.245 n=20
Emit Time 2.830s (± 4.80%) 2.890s (± 5.31%) ~ 2.583s 3.536s p=0.273 n=20
Total Time 11.526s (± 1.02%) 11.553s (± 1.18%) ~ 11.254s 12.265s p=0.968 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,424k (± 0.02%) 693,559k (± 0.01%) ~ 693,221k 693,937k p=0.086 n=20
Memory Allocs 6,499,934 (± 0.04%) 6,500,744 (± 0.05%) ~ 6,493,903 6,518,222 p=0.862 n=20
Config Time 0.004s 0.004s ~ ~ ~ p=1.000 n=20
Parse Time 0.141s (± 2.05%) 0.139s (± 3.26%) ~ 0.124s 0.165s p=0.615 n=20
Bind Time 0.045s (±10.61%) 0.045s (± 9.21%) ~ 0.038s 0.074s p=0.576 n=20
Check Time 1.131s (± 0.34%) 1.097s (± 0.52%) 🟩-0.034s (- 3.01%) 1.078s 1.120s p=0.000 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 1.345s (± 0.56%) 1.310s (± 0.54%) -0.035s (- 2.60%) 1.288s 1.340s p=0.000 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,906k (± 0.02%) 350,955k (± 0.03%) ~ 350,663k 351,537k p=0.478 n=20
Memory Allocs 3,991,054 (± 0.07%) 3,993,299 (± 0.12%) ~ 3,982,116 4,031,084 p=0.738 n=20
Config Time 0.001s 0.001s ~ ~ ~ p=1.000 n=20
Parse Time 0.061s (± 2.83%) 0.061s (± 2.60%) ~ 0.055s 0.067s p=0.549 n=20
Bind Time 0.022s (±10.14%) 0.021s (± 8.80%) ~ 0.018s 0.028s p=0.511 n=20
Check Time 0.425s (± 2.05%) 0.426s (± 1.40%) ~ 0.410s 0.464s p=0.440 n=20
Emit Time 0.000s 0.000s ~ ~ ~ p=1.000 n=20
Total Time 0.514s (± 1.74%) 0.514s (± 1.26%) ~ 0.493s 0.553s p=0.634 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