Skip to content

Don't skip elaborations when reporting errors for cached failed relations - #55234

Closed
Mateusz Burzyński (Andarist) wants to merge 9 commits into
microsoft:mainfrom
Andarist:dont-skip-elaboration-on-cached-entries
Closed

Don't skip elaborations when reporting errors for cached failed relations#55234
Mateusz Burzyński (Andarist) wants to merge 9 commits into
microsoft:mainfrom
Andarist:dont-skip-elaboration-on-cached-entries

Conversation

@Andarist

Copy link
Copy Markdown
Contributor

fixes#3276
to learn more about what's happening you can read my comment here

I'm just opening this as a draft, even without updating baselines. It might be interesting to run the perf suite on this one.

@typescript-botTypeScript Bot (typescript-bot) added the For Backlog Bug PRs that fix a backlog bug label Aug 1, 2023
Comment threadsrc/compiler/checker.ts
@RyanCavanaugh

Copy link
Copy Markdown
Member

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

@typescript-bot

TypeScript Bot (typescript-bot) commented Aug 2, 2023

Copy link
Copy Markdown
Contributor

Heya Ryan Cavanaugh (@RyanCavanaugh), I've started to run the abridged perf test suite on this PR at eaba5a1. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Ryan Cavanaugh (@RyanCavanaugh)
The results of the perf run you requested are in!

Here they are:

Comparison Report - main..55234

Metricmain55234DeltaBestWorstp-value
Angular - node (v16.17.1, x64)
Memory used368,212k (± 0.00%)368,215k (± 0.00%)~368,195k368,243kp=0.936 n=6
Parse Time3.56s (± 0.63%)3.56s (± 0.63%)~3.55s3.61sp=1.000 n=6
Bind Time1.19s (± 0.34%)1.19s (± 0.43%)~1.18s1.19sp=0.114 n=6
Check Time9.73s (± 0.54%)9.71s (± 0.18%)~9.69s9.73sp=0.935 n=6
Emit Time8.00s (± 0.86%)7.95s (± 0.49%)~7.88s7.99sp=0.377 n=6
Total Time22.48s (± 0.53%)22.42s (± 0.25%)~22.31s22.47sp=0.689 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used193,820k (± 0.01%)193,832k (± 0.02%)~193,780k193,880kp=0.689 n=6
Parse Time1.59s (± 0.56%)1.58s (± 1.31%)~1.55s1.61sp=0.804 n=6
Bind Time0.83s (± 1.25%)0.82s (± 0.77%)~0.81s0.83sp=0.203 n=6
Check Time10.13s (± 0.39%)10.13s (± 0.54%)~10.06s10.22sp=0.872 n=6
Emit Time3.01s (± 1.38%)2.98s (± 0.78%)~2.94s3.01sp=0.258 n=6
Total Time15.56s (± 0.41%)15.51s (± 0.51%)~15.39s15.62sp=0.423 n=6
Monaco - node (v16.17.1, x64)
Memory used347,071k (± 0.01%)347,072k (± 0.00%)~347,051k347,085kp=1.000 n=6
Parse Time2.78s (± 0.63%)2.76s (± 0.48%)~2.74s2.78sp=0.143 n=6
Bind Time1.08s (± 0.59%)1.07s (± 0.38%)-0.01s (- 0.77%)1.07s1.08sp=0.033 n=6
Check Time8.03s (± 0.38%)8.01s (± 0.46%)~7.94s8.04sp=0.373 n=6
Emit Time4.47s (± 0.45%)4.46s (± 0.87%)~4.41s4.51sp=0.744 n=6
Total Time16.36s (± 0.24%)16.30s (± 0.33%)~16.24s16.37sp=0.107 n=6
TFS - node (v16.17.1, x64)
Memory used301,124k (± 0.01%)301,114k (± 0.01%)~301,081k301,142kp=0.630 n=6
Parse Time2.20s (± 0.60%)2.19s (± 0.63%)~2.18s2.21sp=0.805 n=6
Bind Time1.22s (± 0.96%)1.20s (± 0.43%)-0.02s (- 1.78%)1.19s1.20sp=0.004 n=6
Check Time7.32s (± 0.26%)7.31s (± 0.24%)~7.28s7.33sp=0.415 n=6
Emit Time4.31s (± 0.91%)4.32s (± 0.56%)~4.28s4.35sp=0.686 n=6
Total Time15.04s (± 0.37%)15.01s (± 0.32%)~14.95s15.09sp=0.296 n=6
material-ui - node (v16.17.1, x64)
Memory used481,871k (± 0.01%)481,880k (± 0.01%)~481,821k481,921kp=0.873 n=6
Parse Time3.25s (± 0.36%)3.25s (± 0.49%)~3.24s3.28sp=0.863 n=6
Bind Time0.96s (± 0.78%)0.95s (± 1.10%)~0.94s0.97sp=0.611 n=6
Check Time18.30s (± 0.64%)18.32s (± 0.41%)~18.24s18.43sp=0.375 n=6
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)~0.00s0.00sp=1.000 n=6
Total Time22.50s (± 0.48%)22.53s (± 0.36%)~22.43s22.63sp=0.423 n=6
xstate - node (v16.17.1, x64)
Memory used561,397k (± 0.01%)561,338k (± 0.02%)~561,247k561,540kp=0.298 n=6
Parse Time4.04s (± 0.34%)4.01s (± 0.20%)-0.02s (- 0.54%)4.00s4.02sp=0.009 n=6
Bind Time1.70s (± 6.37%)1.70s (± 4.91%)~1.58s1.78sp=0.747 n=6
Check Time3.12s (± 2.88%)3.08s (± 2.87%)~3.02s3.25sp=0.147 n=6
Emit Time0.09s (± 4.45%)0.09s (± 5.53%)~0.09s0.10sp=0.595 n=6
Total Time8.94s (± 0.59%)8.89s (± 0.79%)~8.77s8.98sp=0.261 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-148-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • Angular - node (v16.17.1, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Monaco - node (v16.17.1, x64)
  • TFS - node (v16.17.1, x64)
  • material-ui - node (v16.17.1, x64)
  • xstate - node (v16.17.1, x64)
BenchmarkNameIterations
Current552346
Baselinemain6

Developer Information:

Download Benchmark

@Andarist
Mateusz Burzyński (Andarist)force-pushed the dont-skip-elaboration-on-cached-entries branch from 2bf3cf9 to 4a88fbdCompareAugust 6, 2023 19:51
@Andarist

Copy link
Copy Markdown
ContributorAuthor

Ryan Cavanaugh (@RyanCavanaugh) since the perf run came up clean I updated the baselines and cleaned up this a little bit further. Looking at the changed baselines it seems like a neat improvement to me :)

@weswigham

Copy link
Copy Markdown
Member

@typescript-bot

TypeScript Bot (typescript-bot) commented Aug 14, 2023

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the diff-based top-repos suite on this PR at 4a88fbd. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Aug 14, 2023

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the regular perf test suite on this PR at 4a88fbd. You can monitor the build here.

Update: The results are in!

@typescript-bot

TypeScript Bot (typescript-bot) commented Aug 14, 2023

Copy link
Copy Markdown
Contributor

Heya Wesley Wigham (@weswigham), I've started to run the parallelized Definitely Typed test suite on this PR at 4a88fbd. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Wesley Wigham (@weswigham)
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Angular - node (v16.17.1, x64)
Memory used300,343k (± 0.00%)300,351k (± 0.00%)~300,343k300,360kp=0.064 n=6
Parse Time3.03s (± 0.13%)3.03s (± 0.17%)~3.02s3.03sp=0.595 n=6
Bind Time0.93s (± 0.44%)0.93s (± 0.00%)~0.93s0.93sp=0.405 n=6
Check Time9.45s (± 0.20%)9.45s (± 0.18%)~9.43s9.47sp=0.685 n=6
Emit Time7.62s (± 0.35%)7.64s (± 0.18%)~7.62s7.66sp=0.512 n=6
Total Time21.04s (± 0.16%)21.05s (± 0.06%)~21.03s21.07sp=0.410 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used193,891k (± 0.01%)193,879k (± 0.01%)~193,865k193,899kp=0.575 n=6
Parse Time1.58s (± 0.26%)1.57s (± 0.26%)-0.01s (- 0.42%)1.57s1.58sp=0.034 n=6
Bind Time0.79s (± 0.00%)0.79s (± 0.00%)~0.79s0.79sp=1.000 n=6
Check Time9.93s (± 0.56%)9.91s (± 0.46%)~9.84s9.97sp=0.520 n=6
Emit Time2.75s (± 0.27%)2.74s (± 0.30%)~2.73s2.75sp=0.383 n=6
Total Time15.04s (± 0.37%)15.02s (± 0.26%)~14.96s15.07sp=0.422 n=6
Monaco - node (v16.17.1, x64)
Memory used347,031k (± 0.01%)347,036k (± 0.01%)~347,022k347,068kp=0.336 n=6
Parse Time2.69s (± 0.19%)2.69s (± 0.38%)~2.67s2.70sp=0.928 n=6
Bind Time0.99s (± 0.00%)0.99s (± 0.41%)~0.98s0.99sp=0.405 n=6
Check Time7.90s (± 0.49%)7.89s (± 0.26%)~7.85s7.91sp=0.629 n=6
Emit Time4.27s (± 0.76%)4.28s (± 0.32%)~4.26s4.30sp=0.331 n=6
Total Time15.84s (± 0.43%)15.84s (± 0.18%)~15.79s15.87sp=0.748 n=6
TFS - node (v16.17.1, x64)
Memory used301,106k (± 0.00%)301,112k (± 0.00%)~301,104k301,118kp=0.469 n=6
Parse Time2.16s (± 0.45%)2.16s (± 0.54%)~2.15s2.18sp=1.000 n=6
Bind Time1.11s (± 0.00%)1.11s (± 0.00%)~1.11s1.11sp=1.000 n=6
Check Time7.23s (± 0.36%)7.20s (± 0.20%)~7.19s7.23sp=0.088 n=6
Emit Time3.97s (± 0.19%)3.98s (± 0.52%)~3.96s4.01sp=0.209 n=6
Total Time14.47s (± 0.19%)14.46s (± 0.29%)~14.41s14.53sp=0.373 n=6
material-ui - node (v16.17.1, x64)
Memory used479,372k (± 0.00%)479,368k (± 0.00%)~479,356k479,397kp=0.378 n=6
Parse Time3.15s (± 0.13%)3.15s (± 0.47%)~3.14s3.18sp=1.000 n=6
Bind Time0.91s (± 0.00%)0.91s (± 0.00%)~0.91s0.91sp=1.000 n=6
Check Time17.89s (± 0.31%)17.90s (± 0.49%)~17.77s18.03sp=0.936 n=6
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)~0.00s0.00sp=1.000 n=6
Total Time21.95s (± 0.25%)21.96s (± 0.42%)~21.83s22.09sp=1.000 n=6
xstate - node (v16.17.1, x64)
Memory used542,764k (± 0.01%)542,800k (± 0.02%)~542,710k542,996kp=0.873 n=6
Parse Time3.69s (± 0.14%)3.69s (± 0.14%)~3.69s3.70sp=1.000 n=6
Bind Time1.46s (± 0.28%)1.46s (± 0.00%)~1.46s1.46sp=0.405 n=6
Check Time3.16s (± 0.35%)3.17s (± 0.26%)+0.01s (+ 0.42%)3.16s3.18sp=0.029 n=6
Emit Time0.08s (± 0.00%)0.08s (± 4.99%)~0.08s0.09sp=0.405 n=6
Total Time8.39s (± 0.16%)8.41s (± 0.17%)~8.39s8.43sp=0.060 n=6
System info unknown
Hosts
  • node (v16.17.1, x64)
Scenarios
  • Angular - node (v16.17.1, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Monaco - node (v16.17.1, x64)
  • TFS - node (v16.17.1, x64)
  • material-ui - node (v16.17.1, x64)
  • xstate - node (v16.17.1, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

tsserver

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen2,475ms (± 0.07%)2,476ms (± 0.18%)~2,469ms2,483msp=0.517 n=6
Req 2 - geterr5,956ms (± 0.40%)5,955ms (± 0.67%)~5,914ms6,029msp=0.936 n=6
Req 3 - references340ms (± 0.64%)340ms (± 0.71%)~338ms344msp=1.000 n=6
Req 4 - navto279ms (± 0.43%)279ms (± 0.55%)~277ms280msp=0.923 n=6
Req 5 - completionInfo count1,356 (± 0.00%)1,356 (± 0.00%)~1,3561,356p=1.000 n=6
Req 5 - completionInfo84ms (± 2.70%)85ms (± 4.20%)~82ms90msp=0.507 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen2,610ms (± 1.02%)2,609ms (± 0.87%)~2,582ms2,636msp=0.936 n=6
Req 2 - geterr4,721ms (± 0.18%)4,728ms (± 0.29%)~4,705ms4,743msp=0.230 n=6
Req 3 - references350ms (± 0.15%)350ms (± 0.23%)~349ms351msp=0.929 n=6
Req 4 - navto269ms (± 0.28%)269ms (± 0.28%)~268ms270msp=0.487 n=6
Req 5 - completionInfo count1,518 (± 0.00%)1,518 (± 0.00%)~1,5181,518p=1.000 n=6
Req 5 - completionInfo79ms (± 0.00%)79ms (± 0.52%)~78ms79msp=0.405 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen2,717ms (± 0.26%)2,717ms (± 0.29%)~2,703ms2,725msp=1.000 n=6
Req 2 - geterr1,947ms (± 1.84%)1,952ms (± 0.37%)~1,941ms1,959msp=0.196 n=6
Req 3 - references126ms (±10.44%)129ms (± 8.41%)~116ms143msp=0.419 n=6
Req 4 - navto354ms (± 0.64%)352ms (± 0.43%)~350ms354msp=0.103 n=6
Req 5 - completionInfo count2,071 (± 0.00%)2,071 (± 0.00%)~2,0712,071p=1.000 n=6
Req 5 - completionInfo317ms (± 0.83%)319ms (± 1.58%)~315ms329msp=0.934 n=6
System info unknown
Hosts
  • node (v16.17.1, x64)
Scenarios
  • CompilerTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v16.17.1, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Startup

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
tsc-startup - node (v16.17.1, x64)
Execution time155.34ms (± 0.18%)155.28ms (± 0.15%)-0.06ms (- 0.04%)154.46ms159.44msp=0.013 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time230.59ms (± 0.14%)230.62ms (± 0.13%)~229.67ms236.65msp=0.535 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time234.25ms (± 0.17%)235.20ms (± 0.14%)+0.95ms (+ 0.41%)233.81ms237.83msp=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time217.65ms (± 0.13%)217.55ms (± 0.13%)-0.10ms (- 0.04%)216.26ms222.65msp=0.001 n=600
System info unknown
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@typescript-bot

Copy link
Copy Markdown
Contributor

Wesley Wigham (@weswigham) Here are the results of running the top-repos suite comparing main and refs/pull/55234/merge:

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Wesley Wigham (@weswigham), the results of running the DT tests are ready.
Everything looks the same!
You can check the log here.

@sandersn

Copy link
Copy Markdown
Member

Wesley Wigham (@weswigham)Anders Hejlsberg (@ahejlsberg) I'd like to merge this at the start of 5.4 development. Is it good to go?

Comment on lines 20932 to +20934
// Record this relation as having failed such that we don't attempt the overflowing operation again.
const id = getRelationKey(source, target, /*intersectionState*/ IntersectionState.None, relation, /*ignoreConstraints*/ false);
relation.set(id, RelationComparisonResult.Reported | RelationComparisonResult.Failed);
relation.set(id, RelationComparisonResult.Failed);

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Nathan Shively-Sanders (@sandersn)Anders Hejlsberg (@ahejlsberg) those are lines that were not at all here when I created this PR. When syncing with main now I removed the RelationComparisonResult.Reported - just like it was done everywhere else here but I'm not sure if this should actually be done here.

Those lines come from #55851

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Hmm, the CI shows that this actually is important as now it's doing a lot of heavy work twice in this pathological case and the CI timeouts.

If we take a closer look at this baseline (even on main) we might notice that it's actually reporting 2 errors at the same location:

relationComplexityError.ts(12,5): error TS2322: Type 'T1 & T2' is not assignable to type 'T1 | null'.
relationComplexityError.ts(12,5): error TS2859: Excessive complexity comparing types 'T1 & T2' and 'T1 | null'.

So perhaps If I manage to report this once, the perf problems will go away naturally.

@sandersn

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) perf test this

@typescript-bot

TypeScript Bot (typescript-bot) commented Nov 30, 2023

Copy link
Copy Markdown
Contributor

Heya Nathan Shively-Sanders (@sandersn), I've started to run the regular perf test suite on this PR at 0611fbb. You can monitor the build here.

Update: The results are in!

@typescript-bot

Copy link
Copy Markdown
Contributor

Nathan Shively-Sanders (@sandersn)
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Angular - node (v18.15.0, x64)
Memory used295,301k (± 0.01%)295,288k (± 0.01%)~295,268k295,325kp=0.173 n=6
Parse Time2.64s (± 0.31%)2.65s (± 0.37%)~2.64s2.67sp=0.177 n=6
Bind Time0.82s (± 0.00%)0.82s (± 0.50%)~0.82s0.83sp=0.405 n=6
Check Time8.05s (± 0.22%)8.06s (± 0.21%)~8.04s8.08sp=0.288 n=6
Emit Time7.08s (± 0.30%)7.08s (± 0.23%)~7.06s7.09sp=0.675 n=6
Total Time18.59s (± 0.10%)18.61s (± 0.13%)~18.58s18.64sp=0.122 n=6
Compiler-Unions - node (v18.15.0, x64)
Memory used195,142k (± 1.55%)194,070k (± 1.62%)~191,169k196,952kp=0.092 n=6
Parse Time1.36s (± 0.90%)1.36s (± 1.11%)~1.34s1.38sp=1.000 n=6
Bind Time0.72s (± 0.57%)0.72s (± 0.00%)~0.72s0.72sp=0.405 n=6
Check Time9.25s (± 0.22%)9.20s (± 0.47%)-0.05s (- 0.52%)9.14s9.27sp=0.043 n=6
Emit Time2.64s (± 0.40%)2.59s (± 0.20%)-0.04s (- 1.58%)2.59s2.60sp=0.004 n=6
Total Time13.96s (± 0.13%)13.87s (± 0.29%)-0.09s (- 0.62%)13.83s13.94sp=0.008 n=6
Monaco - node (v18.15.0, x64)
Memory used347,358k (± 0.00%)347,348k (± 0.01%)~347,312k347,368kp=0.574 n=6
Parse Time2.46s (± 0.49%)2.46s (± 0.47%)~2.44s2.47sp=0.502 n=6
Bind Time0.92s (± 0.82%)0.93s (± 0.44%)~0.92s0.93sp=0.100 n=6
Check Time6.91s (± 0.53%)6.90s (± 0.52%)~6.84s6.94sp=0.935 n=6
Emit Time4.06s (± 0.64%)4.05s (± 0.45%)~4.02s4.07sp=0.568 n=6
Total Time14.35s (± 0.36%)14.34s (± 0.43%)~14.22s14.39sp=0.810 n=6
TFS - node (v18.15.0, x64)
Memory used302,656k (± 0.01%)302,634k (± 0.01%)~302,620k302,664kp=0.470 n=6
Parse Time2.00s (± 0.80%)2.01s (± 1.04%)~1.99s2.05sp=0.154 n=6
Bind Time1.00s (± 1.36%)1.01s (± 1.32%)~0.99s1.02sp=0.550 n=6
Check Time6.26s (± 0.22%)6.25s (± 0.39%)~6.21s6.28sp=0.682 n=6
Emit Time3.59s (± 0.38%)3.59s (± 0.35%)~3.58s3.61sp=0.868 n=6
Total Time12.84s (± 0.18%)12.85s (± 0.21%)~12.81s12.89sp=0.406 n=6
material-ui - node (v18.15.0, x64)
Memory used506,728k (± 0.01%)506,722k (± 0.01%)~506,676k506,752kp=0.873 n=6
Parse Time2.58s (± 0.49%)2.58s (± 0.45%)~2.57s2.60sp=0.931 n=6
Bind Time0.99s (± 0.76%)0.99s (± 1.23%)~0.98s1.01sp=0.388 n=6
Check Time16.78s (± 0.23%)16.72s (± 0.47%)~16.60s16.82sp=0.128 n=6
Emit Time0.00s (± 0.00%)0.00s (± 0.00%)~0.00s0.00sp=1.000 n=6
Total Time20.35s (± 0.18%)20.29s (± 0.36%)~20.18s20.37sp=0.199 n=6
xstate - node (v18.15.0, x64)
Memory used512,886k (± 0.01%)512,828k (± 0.02%)~512,736k512,987kp=0.199 n=6
Parse Time3.27s (± 0.25%)3.28s (± 0.12%)~3.27s3.28sp=0.248 n=6
Bind Time1.53s (± 0.36%)1.54s (± 0.34%)~1.53s1.54sp=0.640 n=6
Check Time2.81s (± 0.37%)2.81s (± 0.54%)~2.79s2.83sp=0.934 n=6
Emit Time0.08s (± 0.00%)0.08s (± 4.99%)~0.08s0.09sp=0.405 n=6
Total Time7.70s (± 0.15%)7.71s (± 0.28%)~7.68s7.74sp=0.334 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Angular - node (v18.15.0, x64)
  • Compiler-Unions - node (v18.15.0, x64)
  • Monaco - node (v18.15.0, x64)
  • TFS - node (v18.15.0, x64)
  • material-ui - node (v18.15.0, x64)
  • xstate - node (v18.15.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

tsserver

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,337ms (± 0.45%)2,340ms (± 0.36%)~2,330ms2,353msp=1.000 n=6
Req 2 - geterr5,467ms (± 1.46%)5,444ms (± 1.72%)~5,333ms5,539msp=0.936 n=6
Req 3 - references328ms (± 1.89%)329ms (± 1.58%)~323ms336msp=1.000 n=6
Req 4 - navto276ms (± 1.27%)277ms (± 1.27%)~273ms280msp=0.734 n=6
Req 5 - completionInfo count1,356 (± 0.00%)1,356 (± 0.00%)~1,3561,356p=1.000 n=6
Req 5 - completionInfo87ms (± 5.09%)85ms (± 6.91%)~76ms90msp=0.804 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,474ms (± 0.89%)2,480ms (± 0.65%)~2,459ms2,499msp=0.336 n=6
Req 2 - geterr4,113ms (± 2.05%)4,077ms (± 1.61%)~4,026ms4,207msp=0.936 n=6
Req 3 - references339ms (± 1.52%)342ms (± 1.44%)~334ms346msp=0.418 n=6
Req 4 - navto284ms (± 0.36%)284ms (± 0.43%)~283ms286msp=1.000 n=6
Req 5 - completionInfo count1,518 (± 0.00%)1,518 (± 0.00%)~1,5181,518p=1.000 n=6
Req 5 - completionInfo83ms (± 7.55%)86ms (± 6.45%)~79ms90msp=0.279 n=6
xstateTSServer - node (v18.15.0, x64)
Req 1 - updateOpen2,598ms (± 0.74%)2,600ms (± 0.68%)~2,571ms2,625msp=0.936 n=6
Req 2 - geterr1,669ms (± 1.80%)1,668ms (± 1.95%)~1,636ms1,717msp=1.000 n=6
Req 3 - references115ms (± 8.39%)115ms (± 8.71%)~103ms124msp=0.870 n=6
Req 4 - navto364ms (± 1.01%)368ms (± 1.40%)~365ms378msp=0.618 n=6
Req 5 - completionInfo count2,073 (± 0.00%)2,073 (± 0.00%)~2,0732,073p=1.000 n=6
Req 5 - completionInfo308ms (± 1.31%)308ms (± 1.44%)~305ms316msp=1.000 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • CompilerTSServer - node (v18.15.0, x64)
  • Compiler-UnionsTSServer - node (v18.15.0, x64)
  • xstateTSServer - node (v18.15.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Startup

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
tsc-startup - node (v18.15.0, x64)
Execution time153.06ms (± 0.21%)152.73ms (± 0.18%)-0.33ms (- 0.21%)151.61ms156.15msp=0.000 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time228.13ms (± 0.17%)227.64ms (± 0.15%)-0.49ms (- 0.22%)226.26ms231.15msp=0.000 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time229.40ms (± 0.19%)229.25ms (± 0.17%)-0.15ms (- 0.06%)227.61ms232.08msp=0.001 n=600
typescript-startup - node (v18.15.0, x64)
Execution time229.02ms (± 0.19%)229.08ms (± 0.20%)~227.32ms236.04msp=0.155 n=600
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • tsc-startup - node (v18.15.0, x64)
  • tsserver-startup - node (v18.15.0, x64)
  • tsserverlibrary-startup - node (v18.15.0, x64)
  • typescript-startup - node (v18.15.0, x64)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@gabritto

Copy link
Copy Markdown
Member

We had this PR all this time and never merged it? Oh well.

@Andarist

Copy link
Copy Markdown
ContributorAuthor

Gabriela Araujo Britto (@gabritto) does it overlap with some other fresh work/issue? I can certainly try to prioritize this PR more and bring it up to speed

@jakebailey

Copy link
Copy Markdown
Member

Yeah, #57842, since we may report diagnostics out of order and therefore elaborations may jump around.

@gabritto

Copy link
Copy Markdown
Member

Yeah, #57842, since we may report diagnostics out of order and therefore elaborations may jump around.

To give more details, I'm doing some diagnostics work in preparation for #57842. Right now I'm trying to have less duplicated diagnostics, but next on my list is to provide assignability elaboration consistently in editor scenarios, and as a consequence get rid of some of the diagnostics differences that arise when using #57842 vs not using them.
Where things might overlap is that the fact that assignability diagnostics varies depending on cached relations sometimes makes it harder to detect duplication, so making the assignability diagnostics more consistent could help with that as well.

@Andarist

Copy link
Copy Markdown
ContributorAuthor

This work has landed as part of #58859

@gabritto

Copy link
Copy Markdown
Member

This work has landed as part of #58859

Thanks for doing this!

@microsoftMicrosoft (microsoft) locked as resolved and limited conversation to collaborators Oct 16, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

For Backlog BugPRs that fix a backlog bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Diagnostic elaboration is not consistently reported in language service

8 participants

@Andarist@RyanCavanaugh@typescript-bot@weswigham@sandersn@gabritto@jakebailey@ahejlsberg