Skip to content

Enable eslint rules prefer-rest-params and prefer-spread #55181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 11, 2023

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