Skip to content

Conversation

jakebailey
Copy link
Member

@jakebailey jakebailey commented Jul 28, 2023

This is somewhat involved as our diagnostic handling was all arguments based.

I somewhat recently tried to make this consistent in #53193 but apparently didn't go all the way down to the bottom, which this PR necessarily has to do.

There are some places where I chose to just ignore things. I'm unsure if there are better ways to write things but most of those uses also already disabled a lint for using non-arrow functions.

It's possible that there's a perf factor here but I can't seem to observe one, and the callers to the diagnostics stuff already use spread.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jul 28, 2023
@jakebailey
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jul 28, 2023

Heya @jakebailey, I've started to run the perf test suite on this PR at 075c733. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..55181
Metric main 55181 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 368,787k (± 0.01%) 368,805k (± 0.01%) ~ 368,782k 368,829k p=0.297 n=6
Parse Time 3.39s (± 0.36%) 3.38s (± 0.92%) ~ 3.34s 3.43s p=0.681 n=6
Bind Time 1.12s (± 1.04%) 1.12s (± 0.36%) ~ 1.12s 1.13s p=0.858 n=6
Check Time 8.91s (± 0.45%) 8.96s (± 0.50%) ~ 8.88s 9.00s p=0.054 n=6
Emit Time 7.53s (± 0.92%) 7.51s (± 0.83%) ~ 7.44s 7.59s p=0.420 n=6
Total Time 20.95s (± 0.48%) 20.98s (± 0.33%) ~ 20.90s 21.05s p=0.809 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 193,036k (± 1.19%) 193,962k (± 1.49%) ~ 192,049k 197,734k p=0.689 n=6
Parse Time 1.52s (± 0.90%) 1.50s (± 0.50%) -0.01s (- 0.99%) 1.49s 1.51s p=0.046 n=6
Bind Time 0.77s (± 0.00%) 0.78s (± 0.71%) ~ 0.77s 0.78s p=0.071 n=6
Check Time 9.46s (± 0.94%) 9.47s (± 0.49%) ~ 9.40s 9.52s p=1.000 n=6
Emit Time 2.74s (± 0.38%) 2.73s (± 1.36%) ~ 2.70s 2.79s p=0.376 n=6
Total Time 14.49s (± 0.59%) 14.49s (± 0.52%) ~ 14.40s 14.59s p=0.936 n=6
Monaco - node (v18.10.0, x64)
Memory used 347,728k (± 0.01%) 347,761k (± 0.01%) ~ 347,735k 347,798k p=0.128 n=6
Parse Time 2.59s (± 0.65%) 2.61s (± 0.70%) ~ 2.59s 2.64s p=0.115 n=6
Bind Time 1.01s (± 0.54%) 1.02s (± 0.80%) ~ 1.02s 1.04s p=0.054 n=6
Check Time 7.30s (± 0.38%) 7.29s (± 0.41%) ~ 7.26s 7.33s p=0.463 n=6
Emit Time 4.22s (± 0.44%) 4.27s (± 0.70%) +0.05s (+ 1.14%) 4.25s 4.33s p=0.008 n=6
Total Time 15.12s (± 0.18%) 15.19s (± 0.45%) ~ 15.13s 15.31s p=0.077 n=6
TFS - node (v18.10.0, x64)
Memory used 301,784k (± 0.01%) 301,778k (± 0.01%) ~ 301,750k 301,814k p=0.378 n=6
Parse Time 2.09s (± 0.88%) 2.08s (± 1.37%) ~ 2.03s 2.11s p=0.458 n=6
Bind Time 1.12s (± 0.73%) 1.12s (± 0.92%) ~ 1.11s 1.14s p=0.932 n=6
Check Time 6.67s (± 0.52%) 6.66s (± 0.54%) ~ 6.60s 6.71s p=1.000 n=6
Emit Time 3.88s (± 0.56%) 3.87s (± 0.68%) ~ 3.85s 3.92s p=0.624 n=6
Total Time 13.76s (± 0.27%) 13.74s (± 0.49%) ~ 13.67s 13.85s p=0.294 n=6
material-ui - node (v18.10.0, x64)
Memory used 482,556k (± 0.01%) 482,565k (± 0.01%) ~ 482,507k 482,605k p=0.575 n=6
Parse Time 3.13s (± 0.24%) 3.10s (± 2.20%) ~ 2.97s 3.16s p=0.373 n=6
Bind Time 0.92s (± 0.91%) 0.93s (± 4.77%) ~ 0.90s 1.02s p=0.797 n=6
Check Time 17.32s (± 0.91%) 17.37s (± 0.35%) ~ 17.26s 17.44s p=0.148 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.37s (± 0.71%) 21.41s (± 0.35%) ~ 21.26s 21.46s p=0.260 n=6
xstate - node (v18.10.0, x64)
Memory used 563,769k (± 0.01%) 563,853k (± 0.02%) ~ 563,775k 564,021k p=0.066 n=6
Parse Time 3.84s (± 0.73%) 3.85s (± 0.43%) ~ 3.83s 3.87s p=0.372 n=6
Bind Time 1.63s (± 0.84%) 1.64s (± 1.02%) ~ 1.62s 1.66s p=0.615 n=6
Check Time 2.80s (± 0.55%) 2.82s (± 0.74%) ~ 2.79s 2.84s p=0.105 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.36s (± 0.40%) 8.40s (± 0.30%) ~ 8.37s 8.43s p=0.052 n=6
Angular - node (v16.17.1, x64)
Memory used 368,214k (± 0.01%) 368,221k (± 0.00%) ~ 368,199k 368,236k p=0.688 n=6
Parse Time 3.57s (± 0.61%) 3.56s (± 0.53%) ~ 3.54s 3.59s p=0.625 n=6
Bind Time 1.19s (± 0.53%) 1.19s (± 0.69%) ~ 1.18s 1.20s p=0.432 n=6
Check Time 9.77s (± 0.84%) 9.72s (± 0.49%) ~ 9.65s 9.79s p=0.573 n=6
Emit Time 8.06s (± 0.58%) 8.01s (± 0.23%) -0.06s (- 0.74%) 7.98s 8.03s p=0.020 n=6
Total Time 22.59s (± 0.51%) 22.47s (± 0.18%) -0.12s (- 0.52%) 22.41s 22.52s p=0.020 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,849k (± 0.02%) 193,853k (± 0.01%) ~ 193,833k 193,905k p=1.000 n=6
Parse Time 1.59s (± 0.26%) 1.57s (± 0.99%) -0.02s (- 1.36%) 1.55s 1.59s p=0.010 n=6
Bind Time 0.82s (± 1.27%) 0.82s (± 0.50%) ~ 0.82s 0.83s p=0.528 n=6
Check Time 10.14s (± 0.77%) 10.12s (± 0.35%) ~ 10.07s 10.16s p=0.936 n=6
Emit Time 3.00s (± 0.81%) 3.01s (± 0.80%) ~ 2.99s 3.05s p=0.684 n=6
Total Time 15.56s (± 0.70%) 15.52s (± 0.27%) ~ 15.45s 15.56s p=0.687 n=6
Monaco - node (v16.17.1, x64)
Memory used 347,079k (± 0.01%) 347,071k (± 0.01%) ~ 347,046k 347,103k p=0.471 n=6
Parse Time 2.77s (± 0.53%) 2.77s (± 0.37%) ~ 2.75s 2.78s p=1.000 n=6
Bind Time 1.08s (± 0.38%) 1.08s (± 0.51%) ~ 1.07s 1.08s p=0.282 n=6
Check Time 8.01s (± 0.47%) 8.00s (± 0.40%) ~ 7.97s 8.05s p=0.936 n=6
Emit Time 4.47s (± 0.68%) 4.46s (± 0.31%) ~ 4.44s 4.48s p=0.406 n=6
Total Time 16.32s (± 0.37%) 16.30s (± 0.30%) ~ 16.26s 16.39s p=0.422 n=6
TFS - node (v16.17.1, x64)
Memory used 301,117k (± 0.01%) 301,119k (± 0.01%) ~ 301,088k 301,149k p=1.000 n=6
Parse Time 2.21s (± 0.55%) 2.18s (± 0.63%) -0.02s (- 1.06%) 2.16s 2.20s p=0.018 n=6
Bind Time 1.22s (± 1.82%) 1.21s (± 1.32%) ~ 1.19s 1.23s p=0.276 n=6
Check Time 7.32s (± 0.39%) 7.32s (± 0.52%) ~ 7.28s 7.39s p=1.000 n=6
Emit Time 4.33s (± 0.58%) 4.33s (± 0.58%) ~ 4.30s 4.36s p=0.935 n=6
Total Time 15.07s (± 0.29%) 15.04s (± 0.33%) ~ 14.97s 15.11s p=0.226 n=6
material-ui - node (v16.17.1, x64)
Memory used 481,856k (± 0.01%) 481,830k (± 0.01%) ~ 481,771k 481,873k p=0.575 n=6
Parse Time 3.25s (± 0.34%) 3.25s (± 0.43%) ~ 3.23s 3.27s p=1.000 n=6
Bind Time 0.95s (± 0.88%) 0.95s (± 0.57%) ~ 0.95s 0.96s p=0.855 n=6
Check Time 18.33s (± 0.49%) 18.45s (± 0.63%) ~ 18.32s 18.63s p=0.093 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.54s (± 0.38%) 22.66s (± 0.53%) ~ 22.53s 22.85s p=0.092 n=6
xstate - node (v16.17.1, x64)
Memory used 561,388k (± 0.02%) 561,465k (± 0.02%) ~ 561,295k 561,638k p=0.298 n=6
Parse Time 4.02s (± 0.24%) 4.02s (± 0.35%) ~ 4.00s 4.04s p=0.932 n=6
Bind Time 1.70s (± 6.05%) 1.71s (± 6.00%) ~ 1.58s 1.80s p=0.871 n=6
Check Time 3.13s (± 3.32%) 3.07s (± 1.49%) ~ 3.03s 3.13s p=0.221 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 5.53%) ~ 0.09s 0.10s p=0.174 n=6
Total Time 8.94s (± 0.44%) 8.90s (± 0.77%) ~ 8.81s 8.96s p=0.573 n=6
Angular - node (v14.21.3, x64)
Memory used 362,137k (± 0.00%) 362,129k (± 0.01%) ~ 362,098k 362,179k p=0.471 n=6
Parse Time 3.74s (± 0.41%) 3.70s (± 0.37%) -0.04s (- 0.94%) 3.69s 3.73s p=0.008 n=6
Bind Time 1.22s (± 0.62%) 1.22s (± 0.00%) ~ 1.22s 1.22s p=0.598 n=6
Check Time 10.14s (± 0.47%) 10.12s (± 0.29%) ~ 10.07s 10.15s p=0.628 n=6
Emit Time 8.35s (± 0.30%) 8.31s (± 0.76%) ~ 8.25s 8.41s p=0.288 n=6
Total Time 23.44s (± 0.23%) 23.36s (± 0.19%) -0.08s (- 0.36%) 23.31s 23.43s p=0.037 n=6
Compiler-Unions - node (v14.21.3, x64)
Memory used 189,110k (± 0.02%) 189,120k (± 0.01%) ~ 189,092k 189,162k p=0.688 n=6
Parse Time 1.61s (± 0.76%) 1.61s (± 0.85%) ~ 1.59s 1.63s p=0.180 n=6
Bind Time 0.85s (± 1.43%) 0.84s (± 0.61%) ~ 0.84s 0.85s p=0.923 n=6
Check Time 10.31s (± 0.48%) 10.33s (± 0.36%) ~ 10.29s 10.39s p=0.377 n=6
Emit Time 3.14s (± 0.79%) 3.14s (± 0.85%) ~ 3.11s 3.17s p=1.000 n=6
Total Time 15.91s (± 0.37%) 15.91s (± 0.31%) ~ 15.86s 15.98s p=1.000 n=6
Monaco - node (v14.21.3, x64)
Memory used 342,089k (± 0.01%) 342,078k (± 0.01%) ~ 342,048k 342,108k p=0.332 n=6
Parse Time 2.80s (± 0.37%) 2.80s (± 0.43%) ~ 2.79s 2.82s p=0.868 n=6
Bind Time 1.09s (± 0.76%) 1.09s (± 0.00%) ~ 1.09s 1.09s p=0.176 n=6
Check Time 8.28s (± 0.22%) 8.29s (± 0.31%) ~ 8.26s 8.33s p=0.569 n=6
Emit Time 4.67s (± 0.79%) 4.68s (± 0.71%) ~ 4.63s 4.73s p=0.687 n=6
Total Time 16.85s (± 0.12%) 16.86s (± 0.17%) ~ 16.83s 16.90s p=0.568 n=6
TFS - node (v14.21.3, x64)
Memory used 296,194k (± 0.00%) 296,197k (± 0.00%) ~ 296,184k 296,205k p=0.810 n=6
Parse Time 2.43s (± 1.09%) 2.44s (± 0.62%) ~ 2.42s 2.45s p=1.000 n=6
Bind Time 1.08s (± 0.48%) 1.08s (± 0.50%) +0.01s (+ 0.77%) 1.08s 1.09s p=0.038 n=6
Check Time 7.65s (± 0.27%) 7.64s (± 0.27%) ~ 7.61s 7.67s p=1.000 n=6
Emit Time 4.28s (± 1.04%) 4.32s (± 1.09%) ~ 4.29s 4.41s p=0.517 n=6
Total Time 15.44s (± 0.27%) 15.48s (± 0.37%) ~ 15.39s 15.57s p=0.280 n=6
material-ui - node (v14.21.3, x64)
Memory used 477,359k (± 0.00%) 477,360k (± 0.00%) ~ 477,330k 477,377k p=0.936 n=6
Parse Time 3.30s (± 0.53%) 3.30s (± 0.31%) ~ 3.29s 3.32s p=0.739 n=6
Bind Time 0.99s (± 0.41%) 0.99s (± 0.00%) ~ 0.99s 0.99s p=0.405 n=6
Check Time 19.14s (± 0.35%) 19.17s (± 0.33%) ~ 19.12s 19.28s p=0.470 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.43s (± 0.25%) 23.46s (± 0.31%) ~ 23.39s 23.59s p=0.574 n=6
xstate - node (v14.21.3, x64)
Memory used 550,153k (± 0.01%) 550,189k (± 0.01%) ~ 550,131k 550,246k p=0.173 n=6
Parse Time 4.22s (± 0.68%) 4.21s (± 0.88%) ~ 4.18s 4.28s p=0.252 n=6
Bind Time 1.69s (± 0.30%) 1.70s (± 0.32%) ~ 1.69s 1.70s p=0.640 n=6
Check Time 3.14s (± 0.42%) 3.14s (± 0.53%) ~ 3.11s 3.16s p=0.936 n=6
Emit Time 0.10s (± 5.34%) 0.10s (± 4.15%) ~ 0.09s 0.10s p=0.595 n=6
Total Time 9.15s (± 0.38%) 9.13s (± 0.52%) ~ 9.08s 9.22s p=0.221 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 (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.21.3, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.21.3, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.21.3, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.21.3, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.21.3, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.21.3, x64)
Benchmark Name Iterations
Current 55181 6
Baseline main 6

TSServer

Comparison Report - main..55181
Metric main 55181 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,548ms (± 0.93%) 2,546ms (± 0.29%) ~ 2,536ms 2,553ms p=0.872 n=6
Req 2 - geterr 5,398ms (± 0.57%) 5,384ms (± 0.71%) ~ 5,339ms 5,451ms p=0.471 n=6
Req 3 - references 341ms (± 1.07%) 340ms (± 1.29%) ~ 337ms 349ms p=0.406 n=6
Req 4 - navto 290ms (± 0.74%) 289ms (± 0.44%) ~ 288ms 291ms p=0.558 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 75ms (± 1.00%) 76ms (± 0.68%) ~ 75ms 76ms p=0.247 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,614ms (± 0.71%) 2,599ms (± 0.48%) ~ 2,584ms 2,617ms p=0.128 n=6
Req 2 - geterr 4,140ms (± 0.37%) 4,131ms (± 0.62%) ~ 4,097ms 4,157ms p=0.689 n=6
Req 3 - references 351ms (± 0.96%) 350ms (± 0.61%) ~ 348ms 353ms p=0.458 n=6
Req 4 - navto 288ms (± 0.74%) 289ms (± 0.84%) ~ 286ms 292ms p=0.870 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 79ms (± 7.50%) 77ms (± 8.56%) ~ 70ms 89ms p=0.466 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,076ms (± 0.57%) 3,076ms (± 0.28%) ~ 3,065ms 3,088ms p=0.936 n=6
Req 2 - geterr 1,591ms (± 1.15%) 1,593ms (± 1.36%) ~ 1,569ms 1,621ms p=1.000 n=6
Req 3 - references 115ms (± 1.53%) 115ms (± 1.28%) ~ 113ms 117ms p=0.803 n=6
Req 4 - navto 368ms (± 0.11%) 368ms (± 0.34%) ~ 367ms 370ms p=0.546 n=6
Req 5 - completionInfo count 2,872 (± 0.00%) 2,872 (± 0.00%) ~ 2,872 2,872 p=1.000 n=6
Req 5 - completionInfo 381ms (± 1.49%) 379ms (± 1.66%) ~ 370ms 386ms p=0.808 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,621ms (± 0.77%) 2,612ms (± 0.46%) ~ 2,591ms 2,623ms p=0.936 n=6
Req 2 - geterr 6,052ms (± 0.58%) 6,048ms (± 0.68%) ~ 5,995ms 6,096ms p=0.936 n=6
Req 3 - references 356ms (± 0.74%) 356ms (± 0.82%) ~ 353ms 360ms p=0.871 n=6
Req 4 - navto 284ms (± 0.26%) 285ms (± 0.89%) ~ 282ms 289ms p=0.864 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 81ms (± 1.68%) 83ms (± 7.14%) ~ 80ms 95ms p=0.801 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,808ms (± 0.79%) 2,781ms (± 0.62%) ~ 2,762ms 2,803ms p=0.093 n=6
Req 2 - geterr 4,676ms (± 0.39%) 4,686ms (± 0.41%) ~ 4,662ms 4,712ms p=0.470 n=6
Req 3 - references 363ms (± 0.44%) 362ms (± 0.27%) ~ 361ms 363ms p=0.314 n=6
Req 4 - navto 282ms (± 0.29%) 281ms (± 0.55%) ~ 279ms 283ms p=0.510 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 77ms (± 1.06%) 77ms (± 1.37%) ~ 75ms 78ms p=0.865 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,242ms (± 0.46%) 3,232ms (± 0.27%) ~ 3,217ms 3,241ms p=0.296 n=6
Req 2 - geterr 1,740ms (± 0.98%) 1,755ms (± 0.95%) ~ 1,735ms 1,776ms p=0.199 n=6
Req 3 - references 122ms (± 1.31%) 127ms (± 6.09%) ~ 121ms 142ms p=0.075 n=6
Req 4 - navto 351ms (± 0.43%) 351ms (± 0.29%) ~ 350ms 353ms p=0.278 n=6
Req 5 - completionInfo count 2,872 (± 0.00%) 2,872 (± 0.00%) ~ 2,872 2,872 p=1.000 n=6
Req 5 - completionInfo 424ms (± 1.04%) 426ms (± 0.96%) ~ 419ms 431ms p=0.374 n=6
Compiler-UnionsTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,771ms (± 0.25%) 2,770ms (± 0.37%) ~ 2,754ms 2,785ms p=0.936 n=6
Req 2 - geterr 6,200ms (± 0.96%) 6,199ms (± 0.56%) ~ 6,160ms 6,248ms p=0.689 n=6
Req 3 - references 371ms (± 4.89%) 361ms (± 0.69%) ~ 356ms 363ms p=0.222 n=6
Req 4 - navto 289ms (± 1.26%) 290ms (± 0.40%) ~ 288ms 291ms p=0.742 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) ~ 1,356 1,356 p=1.000 n=6
Req 5 - completionInfo 101ms (± 7.68%) 105ms (± 8.26%) ~ 91ms 112ms p=0.463 n=6
CompilerTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,928ms (± 0.39%) 2,934ms (± 0.34%) ~ 2,920ms 2,946ms p=0.467 n=6
Req 2 - geterr 4,589ms (± 0.44%) 4,586ms (± 0.68%) ~ 4,549ms 4,615ms p=0.810 n=6
Req 3 - references 372ms (± 1.13%) 371ms (± 0.38%) ~ 369ms 373ms p=0.747 n=6
Req 4 - navto 297ms (± 0.81%) 298ms (± 0.25%) ~ 297ms 299ms p=0.453 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) ~ 1,518 1,518 p=1.000 n=6
Req 5 - completionInfo 85ms (± 3.37%) 84ms (± 0.49%) ~ 83ms 84ms p=0.546 n=6
xstateTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 3,498ms (± 1.37%) 3,500ms (± 0.50%) ~ 3,474ms 3,515ms p=0.810 n=6
Req 2 - geterr 1,868ms (± 0.45%) 1,865ms (± 0.83%) ~ 1,844ms 1,881ms p=0.936 n=6
Req 3 - references 143ms (± 8.32%) 135ms (± 6.79%) ~ 130ms 154ms p=0.289 n=6
Req 4 - navto 387ms (± 0.95%) 386ms (± 0.35%) ~ 384ms 388ms p=0.871 n=6
Req 5 - completionInfo count 2,872 (± 0.00%) 2,872 (± 0.00%) ~ 2,872 2,872 p=1.000 n=6
Req 5 - completionInfo 421ms (± 0.73%) 420ms (± 1.39%) ~ 410ms 427ms p=0.809 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 (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.21.3, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.21.3, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.21.3, x64)
Benchmark Name Iterations
Current 55181 6
Baseline main 6

Startup

Comparison Report - main..55181
Metric main 55181 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.86ms (± 0.22%) 143.15ms (± 0.21%) +0.29ms (+ 0.20%) 142.35ms 145.66ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 222.96ms (± 0.21%) 222.81ms (± 0.17%) -0.15ms (- 0.07%) 221.70ms 226.39ms p=0.007 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 224.50ms (± 0.26%) 224.58ms (± 0.23%) +0.08ms (+ 0.04%) 223.10ms 230.24ms p=0.029 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 206.32ms (± 0.25%) 205.95ms (± 0.19%) -0.36ms (- 0.18%) 204.90ms 212.87ms p=0.000 n=600
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
  • 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)
Benchmark Name Iterations
Current 55181 6
Baseline main 6

Developer Information:

Download Benchmark

Copy link
Member

@sandersn sandersn left a comment

Choose a reason for hiding this comment

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

Seems good as long as there's no performance difference.

@jakebailey
Copy link
Member Author

@typescript-bot new perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 11, 2023

Heya @jakebailey, I've started to run the tsc-only perf test suite on this PR at 35bb3c3. You can monitor the build here.

Update: The results are in!

@jakebailey
Copy link
Member Author

Now that I think harder, I wonder if this was written this way to work around #498, which no longer applies given our emit target is no longer ancient.

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Angular - node (v16.17.1, x64)
Memory used 300,321k (± 0.01%) 300,341k (± 0.01%) ~ 300,309k 300,354k p=0.199 n=6
Parse Time 3.01s (± 0.35%) 3.03s (± 0.27%) ~ 3.02s 3.04s p=0.078 n=6
Bind Time 0.93s (± 0.00%) 0.93s (± 0.00%) ~ 0.93s 0.93s p=1.000 n=6
Check Time 9.48s (± 0.40%) 9.45s (± 0.29%) ~ 9.41s 9.48s p=0.140 n=6
Emit Time 7.64s (± 0.36%) 7.64s (± 0.38%) ~ 7.59s 7.67s p=0.936 n=6
Total Time 21.06s (± 0.17%) 21.04s (± 0.17%) ~ 21.00s 21.10s p=0.420 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,828k (± 0.00%) 193,810k (± 0.01%) -18k (- 0.01%) 193,776k 193,829k p=0.045 n=6
Parse Time 1.58s (± 0.26%) 1.57s (± 1.19%) ~ 1.55s 1.59s p=0.206 n=6
Bind Time 0.79s (± 0.00%) 0.79s (± 0.00%) ~ 0.79s 0.79s p=1.000 n=6
Check Time 9.90s (± 0.40%) 9.91s (± 0.42%) ~ 9.84s 9.95s p=0.628 n=6
Emit Time 2.75s (± 0.27%) 2.75s (± 0.30%) ~ 2.74s 2.76s p=0.729 n=6
Total Time 15.02s (± 0.25%) 15.01s (± 0.32%) ~ 14.95s 15.07s p=0.686 n=6
Monaco - node (v16.17.1, x64)
Memory used 347,054k (± 0.01%) 347,054k (± 0.01%) ~ 347,024k 347,084k p=1.000 n=6
Parse Time 2.69s (± 0.43%) 2.70s (± 0.31%) ~ 2.69s 2.71s p=0.167 n=6
Bind Time 0.99s (± 0.00%) 0.99s (± 0.00%) ~ 0.99s 0.99s p=1.000 n=6
Check Time 7.92s (± 0.40%) 7.89s (± 0.25%) ~ 7.87s 7.92s p=0.119 n=6
Emit Time 4.26s (± 0.38%) 4.27s (± 0.48%) ~ 4.26s 4.31s p=0.655 n=6
Total Time 15.86s (± 0.30%) 15.85s (± 0.15%) ~ 15.82s 15.88s p=0.685 n=6
TFS - node (v16.17.1, x64)
Memory used 301,109k (± 0.00%) 301,122k (± 0.00%) ~ 301,116k 301,128k p=0.173 n=6
Parse Time 2.17s (± 0.68%) 2.17s (± 0.56%) ~ 2.15s 2.18s p=0.564 n=6
Bind Time 1.11s (± 0.37%) 1.12s (± 0.49%) ~ 1.11s 1.12s p=0.054 n=6
Check Time 7.22s (± 0.26%) 7.20s (± 0.30%) ~ 7.16s 7.22s p=0.122 n=6
Emit Time 3.98s (± 0.35%) 3.98s (± 0.38%) ~ 3.96s 4.00s p=1.000 n=6
Total Time 14.47s (± 0.17%) 14.45s (± 0.28%) ~ 14.37s 14.48s p=0.462 n=6
material-ui - node (v16.17.1, x64)
Memory used 479,474k (± 0.02%) 479,399k (± 0.01%) ~ 479,329k 479,502k p=0.297 n=6
Parse Time 3.15s (± 0.16%) 3.16s (± 0.16%) +0.01s (+ 0.32%) 3.15s 3.16s p=0.018 n=6
Bind Time 0.91s (± 0.00%) 0.91s (± 0.00%) ~ 0.91s 0.91s p=1.000 n=6
Check Time 17.87s (± 0.27%) 17.89s (± 0.29%) ~ 17.82s 17.98s p=0.571 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.93s (± 0.21%) 21.96s (± 0.25%) ~ 21.89s 22.05s p=0.413 n=6
xstate - node (v16.17.1, x64)
Memory used 542,731k (± 0.01%) 542,761k (± 0.01%) ~ 542,719k 542,838k p=0.297 n=6
Parse Time 3.69s (± 0.17%) 3.69s (± 0.22%) ~ 3.69s 3.71s p=0.599 n=6
Bind Time 1.44s (± 3.88%) 1.46s (± 0.51%) ~ 1.45s 1.47s p=1.000 n=6
Check Time 3.19s (± 2.30%) 3.17s (± 0.42%) ~ 3.15s 3.19s p=1.000 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.41s (± 0.34%) 8.40s (± 0.10%) ~ 8.39s 8.41s p=0.677 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)
Benchmark Name Iterations
Current pr 0
Baseline baseline 0

Developer Information:

Download Benchmarks

@jakebailey
Copy link
Member Author

Now that I think harder, I wonder if this was written this way to work around #498, which no longer applies given our emit target is no longer ancient.

Aha, yes, I think I'm on the right track in that thinking: Playground Link

export function trace(host: ModuleResolutionHost, message: DiagnosticMessage, ...args: any[]): void;
export function trace(host: ModuleResolutionHost): void {
    host.trace!(formatMessage.apply(undefined, arguments));
}

export function trace2(host: ModuleResolutionHost, message: DiagnosticMessage, ...args: any[]): void {
    host.trace!(formatMessage(message, ...args));
}

is in ES5

export function trace(host) {
    host.trace(formatMessage.apply(undefined, arguments));
}
export function trace2(host, message) {
    var args = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        args[_i - 2] = arguments[_i];
    }
    host.trace(formatMessage.apply(void 0, __spreadArray([message], args, false)));
}

But post-modules, we're not emitting in ES5 anymore. This gives me more confidence in this change.

@jakebailey
Copy link
Member Author

And, perf is nice and clean.

@jakebailey jakebailey merged commit 3b43d84 into microsoft:main Aug 11, 2023
@jakebailey jakebailey deleted the eslint-prefer-rest branch August 11, 2023 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants