Skip to content
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

Scan bigger/fewer jsdoc tokens #53081

Merged
merged 19 commits into from
Mar 8, 2023

Conversation

sandersn
Copy link
Member

@sandersn sandersn commented Mar 3, 2023

Works on #52959, more detail later

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

sandersn commented Mar 3, 2023

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 3, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,801k (± 0.01%) 360,055k (± 0.01%) +255k (+ 0.07%) 360,013k 360,111k p=0.005 n=6
Parse Time 3.51s (± 0.35%) 3.37s (± 0.69%) 🟩-0.13s (- 3.80%) 3.34s 3.40s p=0.004 n=6
Bind Time 1.13s (± 0.72%) 1.13s (± 1.04%) ~ 1.11s 1.14s p=0.498 n=6
Check Time 8.66s (± 0.77%) 8.64s (± 0.22%) ~ 8.61s 8.66s p=0.145 n=6
Emit Time 7.45s (± 0.80%) 7.42s (± 0.56%) ~ 7.37s 7.47s p=0.294 n=6
Total Time 20.76s (± 0.54%) 20.55s (± 0.18%) -0.21s (- 0.99%) 20.50s 20.59s p=0.005 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,435k (± 1.59%) 191,548k (± 1.50%) ~ 189,630k 195,378k p=0.936 n=6
Parse Time 1.48s (± 0.66%) 1.47s (± 1.03%) ~ 1.45s 1.49s p=0.067 n=6
Bind Time 0.77s (± 0.00%) 0.77s (± 1.27%) ~ 0.76s 0.78s p=0.652 n=6
Check Time 9.35s (± 0.49%) 9.38s (± 0.37%) ~ 9.35s 9.44s p=0.335 n=6
Emit Time 2.73s (± 0.61%) 2.71s (± 0.98%) ~ 2.68s 2.76s p=0.293 n=6
Total Time 14.33s (± 0.41%) 14.34s (± 0.20%) ~ 14.31s 14.38s p=0.872 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,829k (± 0.01%) 343,918k (± 0.01%) +89k (+ 0.03%) 343,862k 343,951k p=0.008 n=6
Parse Time 2.62s (± 1.36%) 2.61s (± 0.99%) ~ 2.58s 2.65s p=1.000 n=6
Bind Time 1.01s (± 0.51%) 1.01s (± 0.81%) ~ 1.00s 1.02s p=0.140 n=6
Check Time 7.02s (± 0.61%) 7.00s (± 0.45%) ~ 6.98s 7.06s p=0.416 n=6
Emit Time 4.25s (± 0.77%) 4.22s (± 0.86%) ~ 4.18s 4.27s p=0.421 n=6
Total Time 14.90s (± 0.58%) 14.84s (± 0.37%) ~ 14.78s 14.91s p=0.228 n=6
TFS - node (v18.10.0, x64)
Memory used 299,869k (± 0.01%) 299,927k (± 0.01%) +58k (+ 0.02%) 299,886k 299,962k p=0.013 n=6
Parse Time 2.05s (± 1.25%) 2.05s (± 0.50%) ~ 2.04s 2.07s p=1.000 n=6
Bind Time 1.13s (± 0.46%) 1.14s (± 0.66%) ~ 1.13s 1.15s p=0.069 n=6
Check Time 6.50s (± 0.48%) 6.50s (± 0.51%) ~ 6.48s 6.57s p=1.000 n=6
Emit Time 3.85s (± 0.39%) 3.85s (± 0.50%) ~ 3.83s 3.88s p=0.462 n=6
Total Time 13.54s (± 0.40%) 13.55s (± 0.32%) ~ 13.49s 13.62s p=1.000 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,432k (± 0.00%) 476,870k (± 0.01%) +437k (+ 0.09%) 476,795k 476,955k p=0.005 n=6
Parse Time 3.13s (± 0.72%) 3.03s (± 0.66%) 🟩-0.10s (- 3.30%) 3.01s 3.06s p=0.005 n=6
Bind Time 0.92s (± 0.60%) 0.91s (± 0.45%) ~ 0.90s 0.91s p=0.054 n=6
Check Time 17.11s (± 0.95%) 17.05s (± 0.47%) ~ 16.96s 17.14s p=0.630 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.16s (± 0.80%) 20.99s (± 0.46%) -0.17s (- 0.83%) 20.89s 21.09s p=0.037 n=6
xstate - node (v18.10.0, x64)
Memory used 548,925k (± 0.02%) 550,225k (± 0.02%) +1,300k (+ 0.24%) 550,114k 550,353k p=0.005 n=6
Parse Time 4.07s (± 0.57%) 3.75s (± 0.57%) 🟩-0.32s (- 7.78%) 3.73s 3.78s p=0.005 n=6
Bind Time 1.68s (± 0.84%) 1.68s (± 0.61%) ~ 1.67s 1.70s p=0.738 n=6
Check Time 2.77s (± 0.78%) 2.75s (± 0.55%) ~ 2.73s 2.77s p=0.088 n=6
Emit Time 0.09s (± 5.95%) 0.08s (± 0.00%) 🟩-0.01s (- 7.69%) 0.08s 0.08s p=0.027 n=6
Total Time 8.61s (± 0.49%) 8.27s (± 0.32%) 🟩-0.34s (- 3.95%) 8.23s 8.30s p=0.005 n=6
Angular - node (v16.17.1, x64)
Memory used 359,082k (± 0.01%) 359,382k (± 0.01%) +299k (+ 0.08%) 359,311k 359,441k p=0.005 n=6
Parse Time 3.73s (± 0.39%) 3.52s (± 0.21%) 🟩-0.21s (- 5.72%) 3.51s 3.53s p=0.005 n=6
Bind Time 1.20s (± 0.43%) 1.18s (± 0.44%) -0.01s (- 1.11%) 1.18s 1.19s p=0.009 n=6
Check Time 9.46s (± 0.43%) 9.44s (± 0.52%) ~ 9.39s 9.52s p=0.333 n=6
Emit Time 7.90s (± 0.94%) 7.91s (± 0.51%) ~ 7.86s 7.95s p=0.810 n=6
Total Time 22.30s (± 0.46%) 22.05s (± 0.23%) -0.24s (- 1.08%) 21.98s 22.12s p=0.005 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 191,875k (± 0.70%) 191,401k (± 0.02%) ~ 191,317k 191,440k p=0.173 n=6
Parse Time 1.56s (± 1.03%) 1.55s (± 1.27%) ~ 1.52s 1.57s p=0.285 n=6
Bind Time 0.82s (± 0.63%) 0.82s (± 0.50%) ~ 0.82s 0.83s p=0.595 n=6
Check Time 10.07s (± 0.96%) 10.04s (± 0.59%) ~ 9.98s 10.13s p=0.687 n=6
Emit Time 3.00s (± 0.74%) 3.01s (± 0.65%) ~ 2.98s 3.04s p=0.624 n=6
Total Time 15.45s (± 0.64%) 15.42s (± 0.44%) ~ 15.34s 15.49s p=0.808 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,104k (± 0.01%) 343,195k (± 0.00%) +91k (+ 0.03%) 343,178k 343,208k p=0.005 n=6
Parse Time 2.79s (± 0.58%) 2.74s (± 0.45%) -0.05s (- 1.73%) 2.73s 2.76s p=0.004 n=6
Bind Time 1.08s (± 0.50%) 1.09s (± 0.37%) ~ 1.08s 1.09s p=0.282 n=6
Check Time 7.69s (± 0.52%) 7.71s (± 0.45%) ~ 7.67s 7.77s p=0.686 n=6
Emit Time 4.42s (± 0.82%) 4.42s (± 0.36%) ~ 4.39s 4.43s p=1.000 n=6
Total Time 15.99s (± 0.43%) 15.96s (± 0.23%) ~ 15.92s 16.02s p=0.258 n=6
TFS - node (v16.17.1, x64)
Memory used 299,235k (± 0.01%) 299,299k (± 0.00%) +64k (+ 0.02%) 299,281k 299,314k p=0.005 n=6
Parse Time 2.15s (± 0.46%) 2.17s (± 0.39%) +0.01s (+ 0.62%) 2.16s 2.18s p=0.031 n=6
Bind Time 1.25s (± 0.79%) 1.25s (± 0.60%) ~ 1.24s 1.26s p=1.000 n=6
Check Time 7.17s (± 0.52%) 7.16s (± 0.39%) ~ 7.13s 7.20s p=0.624 n=6
Emit Time 4.37s (± 1.54%) 4.34s (± 0.55%) ~ 4.30s 4.37s p=1.000 n=6
Total Time 14.94s (± 0.59%) 14.91s (± 0.21%) ~ 14.86s 14.94s p=0.332 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,667k (± 0.00%) 476,065k (± 0.00%) +398k (+ 0.08%) 476,039k 476,085k p=0.005 n=6
Parse Time 3.29s (± 0.37%) 3.17s (± 0.53%) 🟩-0.12s (- 3.55%) 3.15s 3.19s p=0.005 n=6
Bind Time 0.97s (± 0.53%) 0.96s (± 0.57%) ~ 0.96s 0.97s p=0.640 n=6
Check Time 18.10s (± 0.73%) 18.09s (± 0.84%) ~ 17.97s 18.39s p=0.936 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.36s (± 0.59%) 22.23s (± 0.66%) ~ 22.10s 22.51s p=0.066 n=6
xstate - node (v16.17.1, x64)
Memory used 546,403k (± 0.02%) 548,024k (± 0.03%) +1,622k (+ 0.30%) 547,822k 548,225k p=0.005 n=6
Parse Time 4.27s (± 0.40%) 3.94s (± 0.30%) 🟩-0.33s (- 7.80%) 3.93s 3.96s p=0.005 n=6
Bind Time 1.76s (± 0.29%) 1.79s (± 0.42%) +0.03s (+ 1.61%) 1.78s 1.80s p=0.004 n=6
Check Time 2.99s (± 0.50%) 2.99s (± 0.55%) ~ 2.97s 3.01s p=0.508 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.12s (± 0.25%) 8.81s (± 0.13%) 🟩-0.31s (- 3.40%) 8.80s 8.83s p=0.005 n=6
Angular - node (v14.15.1, x64)
Memory used 352,790k (± 0.05%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 3.73s (± 0.31%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 1.24s (± 0.97%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 9.71s (± 0.82%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 8.32s (± 0.69%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 23.00s (± 0.58%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Compiler-Unions - node (v14.15.1, x64)
Memory used 186,529k (± 0.02%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 1.58s (± 0.67%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 0.84s (± 0.65%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 10.20s (± 0.68%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 3.12s (± 0.72%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 15.75s (± 0.47%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Monaco - node (v14.15.1, x64)
Memory used 338,118k (± 0.01%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 2.88s (± 0.65%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 1.10s (± 0.47%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 8.06s (± 0.69%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 4.71s (± 0.44%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 16.76s (± 0.41%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
TFS - node (v14.15.1, x64)
Memory used 294,278k (± 0.00%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 2.38s (± 0.49%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 1.06s (± 0.49%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 7.47s (± 0.29%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 4.30s (± 0.94%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 15.21s (± 0.42%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
material-ui - node (v14.15.1, x64)
Memory used 471,356k (± 0.01%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 3.46s (± 0.93%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 1.01s (± 0.97%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 19.13s (± 0.50%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 0.00s (± 0.00%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 23.61s (± 0.45%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
xstate - node (v14.15.1, x64)
Memory used 535,144k (± 0.00%) 0k ~ 0k 0k p=1.000 n=6+0
Parse Time 4.50s (± 1.65%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Bind Time 1.78s (± 3.24%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Check Time 3.16s (± 0.95%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Emit Time 0.09s (± 5.53%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
Total Time 9.53s (± 0.49%) 0.00s ~ 0.00s 0.00s p=1.000 n=6+0
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

TSServer

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,375ms (± 0.24%) 2,363ms (± 0.52%) ~ 2,348ms 2,380ms p=0.093 n=6
Req 2 - geterr 5,329ms (± 0.54%) 5,317ms (± 0.50%) ~ 5,284ms 5,352ms p=0.575 n=6
Req 3 - references 326ms (± 0.16%) 337ms (± 0.45%) +11ms (+ 3.38%) 334ms 338ms p=0.004 n=6
Req 4 - navto 287ms (± 0.65%) 282ms (± 0.41%) -5ms (- 1.69%) 280ms 283ms p=0.007 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 78ms (± 3.70%) 72ms (± 1.24%) 🟩-6ms (- 7.30%) 71ms 73ms p=0.019 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,517ms (± 0.61%) 2,485ms (± 1.15%) ~ 2,456ms 2,523ms p=0.066 n=6
Req 2 - geterr 4,010ms (± 0.56%) 3,988ms (± 0.98%) ~ 3,940ms 4,038ms p=0.378 n=6
Req 3 - references 348ms (± 0.71%) 348ms (± 1.07%) ~ 344ms 353ms p=0.744 n=6
Req 4 - navto 294ms (± 0.28%) 293ms (± 0.30%) ~ 292ms 294ms p=0.270 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 73ms (± 8.26%) 83ms (± 7.61%) ~ 72ms 89ms p=0.076 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,165ms (± 0.51%) 3,028ms (± 0.57%) 🟩-137ms (- 4.34%) 3,007ms 3,059ms p=0.005 n=6
Req 2 - geterr 1,636ms (± 0.88%) 1,628ms (± 1.45%) ~ 1,611ms 1,671ms p=0.332 n=6
Req 3 - references 105ms (± 2.33%) 103ms (± 0.79%) ~ 102ms 104ms p=0.085 n=6
Req 4 - navto 358ms (± 1.38%) 357ms (± 0.29%) ~ 355ms 358ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 429ms (± 0.71%) 427ms (± 1.59%) ~ 414ms 433ms p=0.872 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,498ms (± 1.82%) 2,474ms (± 0.66%) ~ 2,449ms 2,490ms p=0.689 n=6
Req 2 - geterr 5,736ms (± 0.25%) 5,721ms (± 0.62%) ~ 5,675ms 5,759ms p=0.575 n=6
Req 3 - references 342ms (± 0.80%) 345ms (± 0.28%) ~ 343ms 346ms p=0.134 n=6
Req 4 - navto 281ms (± 1.29%) 278ms (± 0.95%) ~ 274ms 282ms p=0.331 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 90ms (± 5.13%) 79ms (± 0.00%) 🟩-11ms (-11.73%) 79ms 79ms p=0.003 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,691ms (± 0.57%) 2,649ms (± 0.58%) -43ms (- 1.58%) 2,625ms 2,667ms p=0.005 n=6
Req 2 - geterr 4,372ms (± 0.35%) 4,360ms (± 0.42%) ~ 4,341ms 4,394ms p=0.261 n=6
Req 3 - references 356ms (± 0.88%) 354ms (± 0.69%) ~ 351ms 358ms p=0.140 n=6
Req 4 - navto 288ms (± 1.16%) 289ms (± 1.03%) ~ 284ms 292ms p=0.622 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 74ms (± 4.39%) 78ms (± 5.02%) ~ 72ms 84ms p=0.141 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,351ms (± 0.23%) 3,183ms (± 0.55%) 🟩-168ms (- 5.01%) 3,159ms 3,212ms p=0.005 n=6
Req 2 - geterr 1,823ms (± 3.70%) 1,772ms (± 0.88%) ~ 1,757ms 1,793ms p=0.066 n=6
Req 3 - references 112ms (± 1.78%) 113ms (± 1.58%) ~ 111ms 115ms p=0.461 n=6
Req 4 - navto 347ms (± 1.34%) 342ms (± 1.30%) ~ 338ms 350ms p=0.127 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 436ms (± 0.79%) 436ms (± 0.43%) ~ 434ms 438ms p=1.000 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,574ms (± 0.70%) 87ms (± 0.60%) 🟩-2,487ms (-96.63%) 86ms 87ms p=0.004 n=6
Req 2 - geterr 6,024ms (± 0.34%) 4ms (±10.64%) 🟩-6,020ms (-99.94%) 3ms 4ms p=0.004 n=6
Req 3 - references 359ms (± 0.59%) 28ms (± 0.00%) 🟩-331ms (-92.20%) 28ms 28ms p=0.003 n=6
Req 4 - navto 276ms (± 0.32%) 1ms (± 0.00%) 🟩-275ms (-99.64%) 1ms 1ms p=0.003 n=6
Req 5 - completionInfo count 1,356 (± 0.00%) -1,000,000 (± 0.00%) 🟩-1,001,356 (-73,846.31%) -1,000,000 -1,000,000 p=0.001 n=6
Req 5 - completionInfo 101ms (± 1.70%) 1ms (± 0.00%) 🟩-100ms (-99.01%) 1ms 1ms p=0.003 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,818ms (± 0.15%) 116ms (± 0.35%) 🟩-2,702ms (-95.89%) 115ms 116ms p=0.004 n=6
Req 2 - geterr 4,419ms (± 0.34%) 4ms (±10.64%) 🟩-4,415ms (-99.91%) 3ms 4ms p=0.004 n=6
Req 3 - references 386ms (± 7.00%) 26ms (± 0.00%) 🟩-360ms (-93.27%) 26ms 26ms p=0.003 n=6
Req 4 - navto 294ms (± 1.83%) 1ms (± 0.00%) 🟩-293ms (-99.66%) 1ms 1ms p=0.003 n=6
Req 5 - completionInfo count 1,518 (± 0.00%) -1,000,000 (± 0.00%) 🟩-1,001,518 (-65,976.15%) -1,000,000 -1,000,000 p=0.001 n=6
Req 5 - completionInfo 89ms (± 7.28%) 1ms (± 0.00%) 🟩-88ms (-98.88%) 1ms 1ms p=0.003 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,655ms (± 0.91%) 84ms (± 0.62%) 🟩-3,572ms (-97.71%) 83ms 84ms p=0.004 n=6
Req 2 - geterr 1,864ms (± 1.14%) 4ms (±14.07%) 🟩-1,860ms (-99.80%) 3ms 4ms p=0.004 n=6
Req 3 - references 129ms (± 2.54%) 2ms (± 0.00%) 🟩-127ms (-98.45%) 2ms 2ms p=0.003 n=6
Req 4 - navto 375ms (± 0.69%) 1ms (± 0.00%) 🟩-374ms (-99.73%) 1ms 1ms p=0.003 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) -1,000,000 (± 0.00%) 🟩-1,003,136 (-31,987.76%) -1,000,000 -1,000,000 p=0.001 n=6
Req 5 - completionInfo 462ms (± 3.33%) 1ms (± 0.00%) 🟩-461ms (-99.78%) 1ms 1ms p=0.003 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

Startup

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.57ms (± 0.20%) 140.99ms (± 0.18%) -0.58ms (- 0.41%) 140.28ms 146.73ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.61ms (± 0.28%) 225.63ms (± 0.17%) -0.98ms (- 0.43%) 224.51ms 229.75ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.74ms (± 0.30%) 228.52ms (± 0.13%) -0.22ms (- 0.10%) 227.62ms 232.89ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.74ms (± 0.30%) 209.36ms (± 0.16%) -0.38ms (- 0.18%) 208.55ms 215.74ms p=0.010 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53081 6
Baseline main 6

Developer Information:

Download Benchmark

@jakebailey
Copy link
Member

The PR appears to have some errors so I don't know if the above is believable, unfortunately.

@sandersn
Copy link
Member Author

sandersn commented Mar 3, 2023

I can't reproduce those errors locally, although I haven't tried very hard yet, just runtests-parallel.

@@ -4407,6 +4407,7 @@ declare namespace ts {
reScanInvalidIdentifier(): SyntaxKind;
scanJsxToken(): JsxTokenSyntaxKind;
scanJsDocToken(): JSDocSyntaxKind;
scanBigJsDocToken(): JSDocSyntaxKind;
Copy link
Member

Choose a reason for hiding this comment

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

Make these internal.

// TODO: Make sure this is right (and in the right place)
tokenValue = text.substring(tokenPos, pos);
}
return token = SyntaxKind.Identifier;
Copy link
Member

Choose a reason for hiding this comment

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

I know that this is currently a proof-of-concept, but you should create an internal SyntaxKind.JSDocTextSpan that is used only in the parser

src/compiler/parser.ts Outdated Show resolved Hide resolved
Outside backticks, @ only starts a new tag after whitespace and before
non-whitespace. The scanner now checks for this instead of the parser.
@sandersn
Copy link
Member Author

sandersn commented Mar 4, 2023

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 4, 2023

Heya @sandersn, I've started to run the perf test suite on this PR at 9f4daf5. You can monitor the build here.

Update: The results are in!

The checks are now done in the scanner during scanning of jsdoc comment
text.

A couple of baselines change because the top-level @-detection for new
tags works the same way between top-level comment text and tag comment
text. This makes the parser detect more tags than before, specifically
in the case where non-whitespace precedes the first tag on the first
line. I think this is a fix since our parser tries to find tags anywhere
on the line, and previously didn't for the *first line only*.
When whitespace crosses an earlier indent margin, that is, when a line
is indented further than a previous one, we have to slice that
whitespace, but we also know that subsequent text will be comment text,
so can switch to SavingComments.
@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,769k (± 0.01%) 360,030k (± 0.01%) +261k (+ 0.07%) 360,000k 360,081k p=0.005 n=6
Parse Time 3.47s (± 0.51%) 3.34s (± 0.62%) 🟩-0.14s (- 3.89%) 3.30s 3.36s p=0.005 n=6
Bind Time 1.13s (± 0.87%) 1.13s (± 0.97%) ~ 1.11s 1.14s p=0.865 n=6
Check Time 8.69s (± 0.70%) 8.66s (± 0.50%) ~ 8.61s 8.73s p=0.571 n=6
Emit Time 7.44s (± 0.37%) 7.47s (± 0.48%) ~ 7.42s 7.52s p=0.172 n=6
Total Time 20.72s (± 0.30%) 20.59s (± 0.15%) -0.13s (- 0.63%) 20.54s 20.63s p=0.005 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 194,507k (± 1.49%) 192,687k (± 1.50%) ~ 190,691k 196,440k p=0.575 n=6
Parse Time 1.48s (± 0.92%) 1.50s (± 1.09%) +0.02s (+ 1.35%) 1.48s 1.52s p=0.050 n=6
Bind Time 0.78s (± 0.71%) 0.77s (± 0.67%) -0.01s (- 1.08%) 0.76s 0.77s p=0.038 n=6
Check Time 9.42s (± 0.87%) 9.39s (± 0.77%) ~ 9.32s 9.49s p=0.335 n=6
Emit Time 2.75s (± 1.28%) 2.73s (± 0.31%) ~ 2.71s 2.73s p=0.286 n=6
Total Time 14.42s (± 0.64%) 14.38s (± 0.49%) ~ 14.30s 14.48s p=0.378 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,849k (± 0.01%) 343,951k (± 0.01%) +102k (+ 0.03%) 343,925k 343,985k p=0.020 n=6
Parse Time 2.65s (± 0.70%) 2.62s (± 1.63%) ~ 2.58s 2.68s p=0.259 n=6
Bind Time 1.01s (± 1.03%) 1.01s (± 0.88%) ~ 1.00s 1.02s p=0.452 n=6
Check Time 7.02s (± 0.21%) 7.02s (± 0.44%) ~ 6.98s 7.06s p=1.000 n=6
Emit Time 4.23s (± 1.03%) 4.24s (± 0.30%) ~ 4.23s 4.26s p=0.681 n=6
Total Time 14.92s (± 0.48%) 14.90s (± 0.38%) ~ 14.83s 14.98s p=0.378 n=6
TFS - node (v18.10.0, x64)
Memory used 299,869k (± 0.01%) 299,916k (± 0.01%) +47k (+ 0.02%) 299,891k 299,940k p=0.008 n=6
Parse Time 2.04s (± 1.17%) 2.06s (± 0.67%) ~ 2.04s 2.08s p=0.104 n=6
Bind Time 1.14s (± 0.36%) 1.14s (± 0.36%) ~ 1.13s 1.14s p=0.218 n=6
Check Time 6.51s (± 0.53%) 6.51s (± 0.47%) ~ 6.45s 6.53s p=0.808 n=6
Emit Time 3.85s (± 0.76%) 3.85s (± 0.36%) ~ 3.82s 3.86s p=0.934 n=6
Total Time 13.55s (± 0.56%) 13.56s (± 0.39%) ~ 13.46s 13.60s p=0.936 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,448k (± 0.01%) 476,820k (± 0.01%) +373k (+ 0.08%) 476,762k 476,927k p=0.005 n=6
Parse Time 3.14s (± 1.09%) 2.91s (± 0.52%) 🟩-0.23s (- 7.32%) 2.90s 2.93s p=0.005 n=6
Bind Time 0.92s (± 0.56%) 1.04s (± 2.22%) +0.13s (+13.64%) 1.02s 1.08s p=0.004 n=6
Check Time 17.09s (± 1.03%) 17.03s (± 0.47%) ~ 16.96s 17.17s p=0.688 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.15s (± 0.80%) 20.98s (± 0.43%) ~ 20.88s 21.14s p=0.078 n=6
xstate - node (v18.10.0, x64)
Memory used 548,966k (± 0.02%) 550,259k (± 0.02%) +1,293k (+ 0.24%) 550,154k 550,482k p=0.005 n=6
Parse Time 4.07s (± 0.52%) 3.78s (± 0.52%) 🟩-0.29s (- 7.17%) 3.74s 3.79s p=0.005 n=6
Bind Time 1.68s (± 0.38%) 1.68s (± 0.45%) ~ 1.67s 1.69s p=0.718 n=6
Check Time 2.77s (± 0.90%) 2.77s (± 0.95%) ~ 2.75s 2.82s p=0.936 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.60s (± 0.38%) 8.32s (± 0.21%) 🟩-0.28s (- 3.29%) 8.30s 8.35s p=0.005 n=6
Angular - node (v16.17.1, x64)
Memory used 359,086k (± 0.00%) 359,403k (± 0.00%) +317k (+ 0.09%) 359,380k 359,417k p=0.005 n=6
Parse Time 3.73s (± 0.63%) 3.48s (± 0.42%) 🟩-0.24s (- 6.57%) 3.46s 3.50s p=0.005 n=6
Bind Time 1.19s (± 0.68%) 1.18s (± 0.35%) -0.01s (- 0.98%) 1.18s 1.19s p=0.024 n=6
Check Time 9.47s (± 0.61%) 9.44s (± 0.66%) ~ 9.39s 9.55s p=0.468 n=6
Emit Time 7.90s (± 0.78%) 7.90s (± 0.54%) ~ 7.86s 7.98s p=1.000 n=6
Total Time 22.29s (± 0.55%) 22.01s (± 0.35%) -0.28s (- 1.25%) 21.91s 22.11s p=0.005 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,344k (± 0.03%) 192,858k (± 0.54%) ~ 192,356k 194,963k p=0.109 n=6
Parse Time 1.56s (± 1.92%) 1.58s (± 0.98%) ~ 1.55s 1.59s p=0.290 n=6
Bind Time 0.82s (± 0.50%) 0.82s (± 0.77%) ~ 0.81s 0.83s p=0.673 n=6
Check Time 10.14s (± 0.86%) 10.09s (± 0.62%) ~ 10.01s 10.18s p=0.336 n=6
Emit Time 3.01s (± 0.54%) 3.00s (± 0.83%) ~ 2.97s 3.03s p=0.745 n=6
Total Time 15.53s (± 0.78%) 15.49s (± 0.50%) ~ 15.40s 15.62s p=0.574 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,109k (± 0.00%) 343,188k (± 0.00%) +79k (+ 0.02%) 343,163k 343,205k p=0.005 n=6
Parse Time 2.80s (± 0.61%) 2.72s (± 0.92%) -0.08s (- 2.68%) 2.70s 2.77s p=0.005 n=6
Bind Time 1.09s (± 1.07%) 1.09s (± 0.82%) ~ 1.08s 1.10s p=0.933 n=6
Check Time 7.68s (± 0.32%) 7.69s (± 0.41%) ~ 7.64s 7.73s p=0.420 n=6
Emit Time 4.46s (± 0.23%) 4.46s (± 1.00%) ~ 4.41s 4.54s p=0.745 n=6
Total Time 16.03s (± 0.15%) 15.96s (± 0.55%) ~ 15.89s 16.12s p=0.092 n=6
TFS - node (v16.17.1, x64)
Memory used 299,227k (± 0.01%) 299,253k (± 0.01%) ~ 299,208k 299,288k p=0.296 n=6
Parse Time 2.16s (± 0.70%) 2.18s (± 0.54%) +0.02s (+ 1.00%) 2.17s 2.20s p=0.026 n=6
Bind Time 1.24s (± 0.94%) 1.24s (± 0.94%) ~ 1.22s 1.25s p=1.000 n=6
Check Time 7.19s (± 0.40%) 7.16s (± 0.26%) ~ 7.13s 7.18s p=0.107 n=6
Emit Time 4.35s (± 0.88%) 4.33s (± 0.52%) ~ 4.30s 4.37s p=0.808 n=6
Total Time 14.94s (± 0.45%) 14.91s (± 0.30%) ~ 14.86s 14.97s p=0.295 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,680k (± 0.01%) 476,081k (± 0.01%) +402k (+ 0.08%) 476,035k 476,117k p=0.005 n=6
Parse Time 3.29s (± 0.53%) 3.19s (± 0.46%) -0.10s (- 2.99%) 3.17s 3.21s p=0.005 n=6
Bind Time 0.97s (± 0.53%) 0.97s (± 0.84%) ~ 0.96s 0.98s p=0.929 n=6
Check Time 18.17s (± 0.91%) 18.07s (± 0.46%) ~ 17.99s 18.22s p=0.261 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.43s (± 0.81%) 22.22s (± 0.36%) ~ 22.14s 22.37s p=0.054 n=6
xstate - node (v16.17.1, x64)
Memory used 546,498k (± 0.02%) 547,875k (± 0.00%) +1,377k (+ 0.25%) 547,848k 547,923k p=0.005 n=6
Parse Time 4.26s (± 0.38%) 3.93s (± 0.38%) 🟩-0.33s (- 7.74%) 3.92s 3.96s p=0.005 n=6
Bind Time 1.77s (± 0.36%) 1.79s (± 0.23%) +0.02s (+ 1.04%) 1.78s 1.79s p=0.004 n=6
Check Time 2.99s (± 0.58%) 2.97s (± 0.41%) -0.02s (- 0.73%) 2.95s 2.98s p=0.042 n=6
Emit Time 0.09s (± 5.76%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.071 n=6
Total Time 9.12s (± 0.28%) 8.78s (± 0.28%) 🟩-0.34s (- 3.71%) 8.75s 8.82s p=0.005 n=6
Angular - node (v14.15.1, x64)
Memory used 352,863k (± 0.00%) 353,183k (± 0.00%) +320k (+ 0.09%) 353,167k 353,197k p=0.005 n=6
Parse Time 3.72s (± 0.45%) 3.55s (± 0.49%) 🟩-0.17s (- 4.66%) 3.52s 3.57s p=0.005 n=6
Bind Time 1.25s (± 0.51%) 1.23s (± 0.33%) -0.02s (- 1.47%) 1.23s 1.24s p=0.004 n=6
Check Time 9.76s (± 0.46%) 9.74s (± 0.46%) ~ 9.67s 9.80s p=0.629 n=6
Emit Time 8.37s (± 0.74%) 8.32s (± 0.63%) ~ 8.23s 8.38s p=0.228 n=6
Total Time 23.09s (± 0.44%) 22.84s (± 0.25%) -0.25s (- 1.09%) 22.80s 22.95s p=0.008 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,613k (± 0.01%) 187,720k (± 0.02%) +107k (+ 0.06%) 187,658k 187,775k p=0.005 n=6
Parse Time 1.58s (± 1.26%) 1.58s (± 0.35%) ~ 1.58s 1.59s p=0.675 n=6
Bind Time 0.84s (± 0.89%) 0.84s (± 0.65%) ~ 0.84s 0.85s p=0.476 n=6
Check Time 10.21s (± 0.46%) 10.17s (± 0.84%) ~ 10.04s 10.29s p=0.328 n=6
Emit Time 3.12s (± 0.59%) 3.13s (± 0.77%) ~ 3.09s 3.16s p=0.291 n=6
Total Time 15.74s (± 0.40%) 15.73s (± 0.64%) ~ 15.60s 15.89s p=0.936 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,138k (± 0.01%) 338,210k (± 0.01%) +71k (+ 0.02%) 338,161k 338,252k p=0.020 n=6
Parse Time 2.89s (± 0.52%) 2.81s (± 0.37%) -0.07s (- 2.54%) 2.80s 2.83s p=0.004 n=6
Bind Time 1.10s (± 0.57%) 1.10s (± 0.57%) ~ 1.09s 1.11s p=1.000 n=6
Check Time 8.10s (± 0.45%) 8.04s (± 0.29%) -0.06s (- 0.78%) 8.00s 8.07s p=0.024 n=6
Emit Time 4.70s (± 0.77%) 4.69s (± 0.46%) ~ 4.67s 4.72s p=1.000 n=6
Total Time 16.78s (± 0.26%) 16.65s (± 0.19%) -0.14s (- 0.80%) 16.59s 16.68s p=0.005 n=6
TFS - node (v14.15.1, x64)
Memory used 294,288k (± 0.00%) 294,333k (± 0.00%) +45k (+ 0.02%) 294,321k 294,340k p=0.005 n=6
Parse Time 2.37s (± 0.69%) 2.39s (± 1.28%) ~ 2.36s 2.44s p=0.570 n=6
Bind Time 1.07s (± 0.59%) 1.06s (± 0.49%) ~ 1.06s 1.07s p=0.091 n=6
Check Time 7.47s (± 0.38%) 7.48s (± 0.29%) ~ 7.45s 7.51s p=0.328 n=6
Emit Time 4.28s (± 0.72%) 4.31s (± 1.55%) ~ 4.24s 4.43s p=0.520 n=6
Total Time 15.19s (± 0.20%) 15.24s (± 0.60%) ~ 15.13s 15.38s p=0.296 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,375k (± 0.01%) 471,714k (± 0.00%) +339k (+ 0.07%) 471,702k 471,723k p=0.005 n=6
Parse Time 3.44s (± 0.45%) 3.33s (± 0.19%) 🟩-0.11s (- 3.20%) 3.32s 3.34s p=0.004 n=6
Bind Time 1.01s (± 0.63%) 1.00s (± 0.52%) -0.01s (- 1.32%) 0.99s 1.00s p=0.009 n=6
Check Time 19.02s (± 0.72%) 18.94s (± 0.37%) ~ 18.86s 19.05s p=0.336 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.46s (± 0.59%) 23.27s (± 0.30%) -0.20s (- 0.85%) 23.19s 23.37s p=0.020 n=6
xstate - node (v14.15.1, x64)
Memory used 535,172k (± 0.01%) 536,654k (± 0.01%) +1,482k (+ 0.28%) 536,599k 536,716k p=0.005 n=6
Parse Time 4.49s (± 1.11%) 4.22s (± 0.66%) 🟩-0.26s (- 5.87%) 4.19s 4.26s p=0.005 n=6
Bind Time 1.77s (± 3.37%) 1.67s (± 0.54%) ~ 1.66s 1.68s p=0.064 n=6
Check Time 3.18s (± 1.22%) 3.17s (± 0.66%) ~ 3.13s 3.19s p=0.334 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.53s (± 0.64%) 9.15s (± 0.54%) 🟩-0.38s (- 3.95%) 9.07s 9.20s p=0.005 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

TSServer

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,373ms (± 0.34%) 2,396ms (± 0.83%) +22ms (+ 0.93%) 2,378ms 2,434ms p=0.013 n=6
Req 2 - geterr 5,362ms (± 0.61%) 5,391ms (± 0.60%) ~ 5,350ms 5,429ms p=0.230 n=6
Req 3 - references 329ms (± 0.73%) 328ms (± 1.60%) ~ 322ms 337ms p=0.335 n=6
Req 4 - navto 283ms (± 1.30%) 283ms (± 0.41%) ~ 281ms 284ms p=0.516 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 86ms (± 6.22%) 73ms (± 3.39%) 🟩-13ms (-14.76%) 71ms 78ms p=0.005 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,525ms (± 0.83%) 2,516ms (± 0.79%) ~ 2,493ms 2,541ms p=0.810 n=6
Req 2 - geterr 4,027ms (± 0.56%) 3,999ms (± 0.39%) ~ 3,973ms 4,017ms p=0.054 n=6
Req 3 - references 349ms (± 0.47%) 345ms (± 0.37%) -4ms (- 1.00%) 344ms 347ms p=0.007 n=6
Req 4 - navto 294ms (± 0.26%) 292ms (± 0.89%) -2ms (- 0.74%) 287ms 294ms p=0.045 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 75ms (± 5.91%) 70ms (± 7.50%) ~ 67ms 80ms p=0.073 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,157ms (± 0.37%) 3,016ms (± 0.60%) 🟩-141ms (- 4.46%) 3,000ms 3,050ms p=0.005 n=6
Req 2 - geterr 1,602ms (± 1.53%) 1,597ms (± 0.69%) ~ 1,582ms 1,610ms p=0.810 n=6
Req 3 - references 103ms (± 1.43%) 103ms (± 0.73%) ~ 102ms 104ms p=0.803 n=6
Req 4 - navto 359ms (± 0.80%) 357ms (± 0.58%) ~ 354ms 359ms p=0.193 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 430ms (± 0.89%) 425ms (± 1.21%) ~ 417ms 431ms p=0.126 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,446ms (± 0.55%) 2,508ms (± 0.58%) +62ms (+ 2.53%) 2,486ms 2,526ms p=0.005 n=6
Req 2 - geterr 5,777ms (± 0.60%) 5,767ms (± 0.40%) ~ 5,741ms 5,797ms p=0.810 n=6
Req 3 - references 342ms (± 1.28%) 347ms (± 0.30%) ~ 345ms 348ms p=0.105 n=6
Req 4 - navto 279ms (± 0.55%) 278ms (± 0.90%) ~ 275ms 281ms p=0.413 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 90ms (± 6.37%) 78ms (± 1.50%) 🟩-12ms (-13.20%) 76ms 79ms p=0.005 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,679ms (± 0.88%) 2,664ms (± 0.42%) ~ 2,644ms 2,673ms p=0.229 n=6
Req 2 - geterr 4,399ms (± 0.44%) 4,350ms (± 0.60%) -49ms (- 1.11%) 4,316ms 4,383ms p=0.013 n=6
Req 3 - references 362ms (± 0.45%) 353ms (± 1.03%) -10ms (- 2.71%) 349ms 359ms p=0.005 n=6
Req 4 - navto 289ms (± 0.75%) 292ms (± 1.26%) ~ 285ms 295ms p=0.148 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 73ms (± 1.35%) 76ms (± 3.67%) +4ms (+ 4.81%) 73ms 80ms p=0.042 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,338ms (± 0.38%) 3,149ms (± 0.36%) 🟩-189ms (- 5.66%) 3,131ms 3,161ms p=0.005 n=6
Req 2 - geterr 1,738ms (± 0.96%) 1,740ms (± 0.84%) ~ 1,723ms 1,762ms p=0.810 n=6
Req 3 - references 112ms (± 1.22%) 113ms (± 2.00%) ~ 109ms 115ms p=0.371 n=6
Req 4 - navto 342ms (± 0.52%) 343ms (± 1.20%) ~ 339ms 350ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 434ms (± 1.02%) 435ms (± 0.78%) ~ 431ms 440ms p=0.687 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,569ms (± 0.25%) 2,595ms (± 0.63%) +25ms (+ 0.99%) 2,571ms 2,610ms p=0.020 n=6
Req 2 - geterr 6,089ms (± 0.31%) 6,086ms (± 0.46%) ~ 6,055ms 6,122ms p=0.873 n=6
Req 3 - references 356ms (± 0.35%) 357ms (± 0.85%) ~ 353ms 361ms p=0.624 n=6
Req 4 - navto 277ms (± 1.50%) 286ms (± 0.62%) +9ms (+ 3.19%) 284ms 289ms p=0.012 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 100ms (± 4.60%) 84ms (± 9.46%) 🟩-16ms (-15.89%) 80ms 100ms p=0.012 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,822ms (± 0.67%) 2,805ms (± 0.49%) ~ 2,791ms 2,826ms p=0.128 n=6
Req 2 - geterr 4,506ms (± 2.01%) 4,532ms (± 2.86%) ~ 4,444ms 4,701ms p=0.575 n=6
Req 3 - references 371ms (± 1.01%) 384ms (± 5.99%) ~ 367ms 415ms p=0.686 n=6
Req 4 - navto 297ms (± 1.80%) 292ms (± 0.95%) ~ 289ms 296ms p=0.077 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 91ms (±10.81%) 94ms (± 9.88%) ~ 82ms 102ms p=1.000 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,663ms (± 0.38%) 3,464ms (± 0.52%) 🟩-199ms (- 5.42%) 3,436ms 3,484ms p=0.005 n=6
Req 2 - geterr 1,856ms (± 0.53%) 1,844ms (± 0.92%) ~ 1,820ms 1,861ms p=0.470 n=6
Req 3 - references 130ms (± 2.06%) 125ms (± 1.09%) 🟩-5ms (- 4.10%) 123ms 127ms p=0.012 n=6
Req 4 - navto 373ms (± 0.56%) 373ms (± 0.63%) ~ 372ms 378ms p=0.685 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 457ms (± 2.16%) 443ms (± 1.82%) 🟩-14ms (- 3.14%) 433ms 452ms p=0.024 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

Startup

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.45ms (± 0.18%) 141.09ms (± 0.21%) -0.36ms (- 0.25%) 140.41ms 146.24ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.28ms (± 0.17%) 226.69ms (± 0.34%) ~ 224.66ms 234.57ms p=0.326 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.33ms (± 0.20%) 228.92ms (± 0.32%) +0.59ms (+ 0.26%) 226.62ms 235.54ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.02ms (± 0.16%) 208.64ms (± 0.22%) -0.38ms (- 0.18%) 207.49ms 213.99ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53081 6
Baseline main 6

Developer Information:

Download Benchmark

@jakebailey
Copy link
Member

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 4, 2023

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

Update: The results are in!

@jakebailey
Copy link
Member

I ran the current state on my perf machine with --predictable and this is what I got:

Details

Loading benchmark and comparing to baseline.
Comparison Report - main..HEAD

Metric main HEAD Delta Best Worst p-value
Angular - node (v16.18.1, x64)
Memory used 292,240k (± 0.00%) 292,396k (± 0.00%) +156k (+ 0.05%) 292,396k 292,397k p=0.003 n=6
Parse Time 3.36s (± 0.15%) 3.18s (± 0.32%) 🟩-0.18s (- 5.35%) 3.17s 3.20s p=0.004 n=6
Bind Time 1.30s (± 0.40%) 1.10s (± 0.47%) 🟩-0.19s (-14.91%) 1.10s 1.11s p=0.004 n=6
Check Time 10.29s (± 0.11%) 10.50s (± 0.05%) +0.21s (+ 2.09%) 10.50s 10.51s p=0.004 n=6
Emit Time 8.75s (± 1.12%) 8.70s (± 0.35%) ~ 8.67s 8.75s p=0.145 n=6
Total Time 23.70s (± 0.42%) 23.49s (± 0.14%) -0.21s (- 0.89%) 23.46s 23.53s p=0.005 n=6
Compiler - node (v16.18.1, x64)
Memory used 173,738k (± 0.01%) 173,790k (± 0.04%) +52k (+ 0.03%) 173,762k 173,929k p=0.003 n=6
Parse Time 2.01s (± 0.26%) 1.99s (± 0.20%) -0.02s (- 1.08%) 1.99s 2.00s p=0.003 n=6
Bind Time 0.93s (± 0.55%) 0.93s (± 0.00%) ~ 0.93s 0.93s p=0.174 n=6
Check Time 9.01s (± 0.16%) 9.00s (± 0.12%) ~ 8.99s 9.02s p=0.111 n=6
Emit Time 3.81s (± 0.27%) 3.78s (± 0.11%) -0.03s (- 0.83%) 3.78s 3.79s p=0.003 n=6
Total Time 15.77s (± 0.14%) 15.70s (± 0.10%) -0.07s (- 0.43%) 15.69s 15.73s p=0.005 n=6
Compiler-Unions - node (v16.18.1, x64)
Memory used 192,385k (± 0.00%) 192,441k (± 0.02%) +56k (+ 0.03%) 192,426k 192,513k p=0.003 n=6
Parse Time 1.78s (± 0.29%) 1.81s (± 0.28%) +0.03s (+ 1.68%) 1.81s 1.82s p=0.004 n=6
Bind Time 0.92s (± 0.00%) 0.92s (± 0.56%) ~ 0.91s 0.92s p=0.174 n=6
Check Time 10.94s (± 0.17%) 10.96s (± 0.12%) ~ 10.94s 10.98s p=0.086 n=6
Emit Time 3.78s (± 0.11%) 3.75s (± 0.40%) -0.03s (- 0.75%) 3.74s 3.78s p=0.010 n=6
Total Time 17.43s (± 0.07%) 17.45s (± 0.04%) +0.03s (+ 0.15%) 17.44s 17.46s p=0.007 n=6
Monaco - node (v16.18.1, x64)
Memory used 343,038k (± 0.00%) 343,131k (± 0.00%) +93k (+ 0.03%) 343,131k 343,131k p=0.001 n=6
Parse Time 3.01s (± 0.53%) 2.89s (± 0.28%) 🟩-0.11s (- 3.82%) 2.89s 2.91s p=0.004 n=6
Bind Time 1.48s (± 0.35%) 1.46s (± 0.00%) -0.02s (- 1.13%) 1.46s 1.46s p=0.002 n=6
Check Time 8.69s (± 0.25%) 8.68s (± 0.06%) ~ 8.68s 8.69s p=0.803 n=6
Emit Time 5.03s (± 0.37%) 5.00s (± 0.08%) -0.03s (- 0.50%) 5.00s 5.01s p=0.021 n=6
Total Time 18.21s (± 0.34%) 18.04s (± 0.06%) -0.17s (- 0.94%) 18.02s 18.05s p=0.005 n=6
TFS - node (v16.18.1, x64)
Memory used 298,807k (± 0.06%) 298,806k (± 0.00%) -1k (- 0.00%) 298,806k 298,806k p=0.045 n=6
Parse Time 2.55s (± 0.00%) 2.56s (± 0.33%) ~ 2.55s 2.57s p=0.176 n=6
Bind Time 1.11s (± 0.00%) 1.11s (± 0.00%) ~ 1.11s 1.11s p=1.000 n=6
Check Time 8.49s (± 0.06%) 8.49s (± 0.15%) ~ 8.48s 8.51s p=0.448 n=6
Emit Time 4.98s (± 2.27%) 5.43s (± 0.10%) +0.46s (+ 9.14%) 5.43s 5.44s p=0.004 n=6
Total Time 17.13s (± 0.65%) 17.59s (± 0.07%) +0.46s (+ 2.67%) 17.57s 17.60s p=0.005 n=6
material-ui - node (v16.18.1, x64)
Memory used 472,153k (± 0.00%) 472,570k (± 0.00%) +417k (+ 0.09%) 472,570k 472,570k p=0.001 n=6
Parse Time 3.46s (± 0.12%) 3.34s (± 0.12%) 🟩-0.12s (- 3.47%) 3.34s 3.35s p=0.003 n=6
Bind Time 1.18s (± 0.44%) 1.12s (± 0.46%) 🟩-0.07s (- 5.63%) 1.11s 1.12s p=0.004 n=6
Check Time 20.63s (± 0.11%) 20.66s (± 0.07%) +0.03s (+ 0.14%) 20.64s 20.67s p=0.042 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 25.27s (± 0.09%) 25.11s (± 0.07%) -0.16s (- 0.63%) 25.10s 25.14s p=0.005 n=6
xstate - node (v16.18.1, x64)
Memory used 526,990k (± 0.00%) 528,114k (± 0.00%) +1,124k (+ 0.21%) 528,114k 528,114k p=0.001 n=6
Parse Time 4.70s (± 0.16%) 4.29s (± 0.15%) 🟩-0.41s (- 8.69%) 4.28s 4.30s p=0.004 n=6
Bind Time 1.59s (± 0.00%) 1.57s (± 0.33%) -0.02s (- 1.05%) 1.57s 1.58s p=0.002 n=6
Check Time 3.52s (± 0.00%) 3.33s (± 0.00%) 🟩-0.19s (- 5.40%) 3.33s 3.33s p=0.001 n=6
Emit Time 0.10s (± 0.00%) 0.09s (± 0.00%) 🟩-0.01s (-10.00%) 0.09s 0.09s p=0.001 n=6
Total Time 9.90s (± 0.04%) 9.29s (± 0.04%) 🟩-0.61s (- 6.19%) 9.28s 9.29s p=0.003 n=6
System
Machine Nameelcheapo
Platformlinux 6.2.1-arch1-1
Architecturex64
Available Memory8 GB
Available Memory7 GB
CPUs6 × Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
Hosts
  • node (v16.18.1, x64)
Scenarios
  • Angular - node (v16.18.1, x64)
  • Compiler - node (v16.18.1, x64)
  • Compiler-Unions - node (v16.18.1, x64)
  • Monaco - node (v16.18.1, x64)
  • TFS - node (v16.18.1, x64)
  • material-ui - node (v16.18.1, x64)
  • xstate - node (v16.18.1, x64)
Benchmark Name Iterations
Current HEAD 6
Baseline main 6

@@ -109,6 +109,11 @@ export const enum SyntaxKind {
BacktickToken,
/** Only the JSDoc scanner produces HashToken. The normal scanner produces PrivateIdentifier. */
HashToken,
/**
* Only the special JSDoc comment text scanner produces JSDocCommentTextTokes. One of these tokens spans all text after a tag comment's start and before the next @
Copy link
Member

Choose a reason for hiding this comment

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

Just now noticing the parallel between this comment and the previous ones. Given people can call our scanner themselves, maybe I was wrong and this should be public so that no undocumented kinds are returned from token?

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,740k (± 0.02%) 360,024k (± 0.01%) +284k (+ 0.08%) 359,996k 360,060k p=0.005 n=6
Parse Time 3.48s (± 0.80%) 3.37s (± 0.24%) 🟩-0.12s (- 3.30%) 3.36s 3.38s p=0.005 n=6
Bind Time 1.13s (± 0.74%) 1.13s (± 0.67%) ~ 1.12s 1.14s p=0.432 n=6
Check Time 8.66s (± 0.54%) 8.69s (± 0.60%) ~ 8.65s 8.78s p=0.469 n=6
Emit Time 7.43s (± 0.35%) 7.49s (± 0.57%) +0.06s (+ 0.81%) 7.43s 7.54s p=0.037 n=6
Total Time 20.69s (± 0.29%) 20.68s (± 0.34%) ~ 20.59s 20.80s p=0.809 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,551k (± 1.49%) 193,608k (± 1.62%) ~ 190,710k 196,673k p=0.128 n=6
Parse Time 1.49s (± 0.55%) 1.50s (± 0.56%) +0.02s (+ 1.23%) 1.50s 1.52s p=0.009 n=6
Bind Time 0.77s (± 0.67%) 0.78s (± 0.71%) +0.01s (+ 1.09%) 0.77s 0.78s p=0.038 n=6
Check Time 9.35s (± 0.57%) 9.41s (± 0.53%) ~ 9.36s 9.48s p=0.077 n=6
Emit Time 2.73s (± 1.05%) 2.75s (± 0.85%) ~ 2.72s 2.78s p=0.197 n=6
Total Time 14.33s (± 0.53%) 14.44s (± 0.44%) +0.11s (+ 0.74%) 14.37s 14.52s p=0.042 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,850k (± 0.01%) 343,953k (± 0.01%) +103k (+ 0.03%) 343,904k 343,981k p=0.008 n=6
Parse Time 2.63s (± 0.39%) 2.60s (± 1.21%) -0.04s (- 1.39%) 2.55s 2.63s p=0.021 n=6
Bind Time 1.00s (± 1.22%) 1.01s (± 0.97%) ~ 1.00s 1.02s p=0.359 n=6
Check Time 7.00s (± 0.52%) 7.03s (± 0.42%) ~ 7.00s 7.08s p=0.260 n=6
Emit Time 4.24s (± 0.77%) 4.24s (± 0.84%) ~ 4.19s 4.28s p=1.000 n=6
Total Time 14.88s (± 0.41%) 14.88s (± 0.59%) ~ 14.75s 15.00s p=1.000 n=6
TFS - node (v18.10.0, x64)
Memory used 299,880k (± 0.01%) 299,930k (± 0.01%) +51k (+ 0.02%) 299,905k 299,963k p=0.008 n=6
Parse Time 2.04s (± 0.51%) 2.07s (± 1.59%) ~ 2.01s 2.11s p=0.064 n=6
Bind Time 1.13s (± 0.36%) 1.14s (± 0.66%) ~ 1.13s 1.15s p=0.100 n=6
Check Time 6.49s (± 0.42%) 6.52s (± 0.53%) ~ 6.48s 6.58s p=0.145 n=6
Emit Time 3.85s (± 0.73%) 3.87s (± 1.53%) ~ 3.81s 3.97s p=0.936 n=6
Total Time 13.51s (± 0.27%) 13.60s (± 0.81%) ~ 13.52s 13.80s p=0.065 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,423k (± 0.00%) 476,822k (± 0.01%) +398k (+ 0.08%) 476,785k 476,944k p=0.005 n=6
Parse Time 3.11s (± 0.43%) 2.96s (± 1.06%) 🟩-0.15s (- 4.93%) 2.91s 3.00s p=0.005 n=6
Bind Time 0.91s (± 0.57%) 1.07s (± 1.32%) +0.16s (+18.01%) 1.05s 1.09s p=0.004 n=6
Check Time 17.06s (± 0.44%) 17.22s (± 0.97%) ~ 17.01s 17.43s p=0.078 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.07s (± 0.37%) 21.25s (± 0.81%) ~ 21.00s 21.48s p=0.093 n=6
xstate - node (v18.10.0, x64)
Memory used 548,865k (± 0.02%) 550,370k (± 0.02%) +1,505k (+ 0.27%) 550,238k 550,479k p=0.005 n=6
Parse Time 4.07s (± 0.55%) 3.79s (± 0.44%) 🟩-0.27s (- 6.77%) 3.77s 3.81s p=0.005 n=6
Bind Time 1.67s (± 0.59%) 1.69s (± 0.44%) +0.02s (+ 1.40%) 1.68s 1.70s p=0.007 n=6
Check Time 2.76s (± 0.74%) 2.77s (± 0.55%) ~ 2.74s 2.78s p=0.572 n=6
Emit Time 0.08s (± 4.99%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=1.000 n=6
Total Time 8.58s (± 0.38%) 8.33s (± 0.35%) -0.25s (- 2.89%) 8.29s 8.36s p=0.005 n=6
Angular - node (v16.17.1, x64)
Memory used 359,078k (± 0.00%) 359,409k (± 0.01%) +331k (+ 0.09%) 359,358k 359,465k p=0.005 n=6
Parse Time 3.72s (± 0.22%) 3.49s (± 0.71%) 🟩-0.22s (- 6.01%) 3.46s 3.52s p=0.004 n=6
Bind Time 1.19s (± 0.46%) 1.18s (± 0.44%) -0.01s (- 0.98%) 1.18s 1.19s p=0.013 n=6
Check Time 9.42s (± 0.62%) 9.44s (± 0.41%) ~ 9.39s 9.48s p=0.630 n=6
Emit Time 7.90s (± 0.84%) 7.88s (± 0.33%) ~ 7.84s 7.91s p=1.000 n=6
Total Time 22.23s (± 0.25%) 22.00s (± 0.25%) -0.23s (- 1.01%) 21.92s 22.08s p=0.005 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,383k (± 0.03%) 192,420k (± 0.05%) ~ 192,318k 192,549k p=0.575 n=6
Parse Time 1.56s (± 0.52%) 1.59s (± 1.22%) +0.03s (+ 1.60%) 1.56s 1.61s p=0.048 n=6
Bind Time 0.82s (± 0.00%) 0.83s (± 0.66%) ~ 0.82s 0.83s p=0.071 n=6
Check Time 10.12s (± 0.60%) 10.10s (± 0.69%) ~ 9.99s 10.19s p=0.687 n=6
Emit Time 2.98s (± 0.86%) 3.00s (± 1.26%) ~ 2.96s 3.05s p=0.625 n=6
Total Time 15.48s (± 0.45%) 15.51s (± 0.52%) ~ 15.42s 15.63s p=0.470 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,113k (± 0.00%) 343,185k (± 0.01%) +72k (+ 0.02%) 343,159k 343,204k p=0.005 n=6
Parse Time 2.79s (± 0.27%) 2.75s (± 0.68%) -0.04s (- 1.26%) 2.73s 2.78s p=0.007 n=6
Bind Time 1.08s (± 0.76%) 1.09s (± 0.47%) +0.02s (+ 1.55%) 1.09s 1.10s p=0.003 n=6
Check Time 7.67s (± 0.37%) 7.71s (± 0.67%) ~ 7.65s 7.78s p=0.418 n=6
Emit Time 4.42s (± 0.44%) 4.47s (± 0.69%) +0.05s (+ 1.06%) 4.44s 4.51s p=0.016 n=6
Total Time 15.97s (± 0.18%) 16.03s (± 0.59%) ~ 15.92s 16.16s p=0.332 n=6
TFS - node (v16.17.1, x64)
Memory used 299,227k (± 0.01%) 299,268k (± 0.01%) +41k (+ 0.01%) 299,240k 299,285k p=0.013 n=6
Parse Time 2.17s (± 0.48%) 2.18s (± 1.16%) ~ 2.15s 2.22s p=0.413 n=6
Bind Time 1.24s (± 0.41%) 1.25s (± 1.47%) ~ 1.22s 1.27s p=0.548 n=6
Check Time 7.17s (± 0.39%) 7.20s (± 0.82%) ~ 7.11s 7.27s p=0.377 n=6
Emit Time 4.33s (± 0.65%) 4.36s (± 0.43%) ~ 4.34s 4.39s p=0.120 n=6
Total Time 14.91s (± 0.15%) 14.99s (± 0.62%) ~ 14.87s 15.10s p=0.229 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,669k (± 0.01%) 476,091k (± 0.00%) +422k (+ 0.09%) 476,075k 476,108k p=0.005 n=6
Parse Time 3.28s (± 0.42%) 3.20s (± 0.68%) -0.09s (- 2.64%) 3.17s 3.23s p=0.005 n=6
Bind Time 0.96s (± 0.57%) 0.97s (± 0.78%) +0.01s (+ 1.40%) 0.96s 0.98s p=0.015 n=6
Check Time 17.99s (± 0.24%) 18.11s (± 0.49%) ~ 18.00s 18.22s p=0.054 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.23s (± 0.16%) 22.27s (± 0.47%) ~ 22.16s 22.43s p=0.568 n=6
xstate - node (v16.17.1, x64)
Memory used 546,456k (± 0.02%) 547,916k (± 0.01%) +1,460k (+ 0.27%) 547,850k 548,050k p=0.005 n=6
Parse Time 4.28s (± 0.54%) 3.93s (± 0.49%) 🟩-0.35s (- 8.18%) 3.90s 3.95s p=0.005 n=6
Bind Time 1.77s (± 0.46%) 1.79s (± 0.55%) +0.02s (+ 1.23%) 1.78s 1.80s p=0.008 n=6
Check Time 2.98s (± 0.76%) 2.98s (± 0.65%) ~ 2.96s 3.01s p=1.000 n=6
Emit Time 0.09s (± 5.53%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.174 n=6
Total Time 9.11s (± 0.36%) 8.80s (± 0.43%) 🟩-0.32s (- 3.47%) 8.74s 8.84s p=0.005 n=6
Angular - node (v14.15.1, x64)
Memory used 352,866k (± 0.00%) 353,186k (± 0.00%) +320k (+ 0.09%) 353,168k 353,210k p=0.005 n=6
Parse Time 3.71s (± 0.37%) 3.57s (± 1.08%) 🟩-0.14s (- 3.69%) 3.52s 3.62s p=0.005 n=6
Bind Time 1.25s (± 0.60%) 1.23s (± 0.33%) -0.02s (- 1.60%) 1.22s 1.23s p=0.003 n=6
Check Time 9.73s (± 0.31%) 9.73s (± 0.32%) ~ 9.69s 9.78s p=1.000 n=6
Emit Time 8.29s (± 0.35%) 8.35s (± 0.91%) ~ 8.26s 8.49s p=0.075 n=6
Total Time 22.98s (± 0.26%) 22.88s (± 0.38%) ~ 22.74s 22.98s p=0.066 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,621k (± 0.01%) 187,724k (± 0.01%) +104k (+ 0.06%) 187,712k 187,736k p=0.005 n=6
Parse Time 1.57s (± 0.80%) 1.61s (± 0.75%) +0.04s (+ 2.34%) 1.60s 1.63s p=0.004 n=6
Bind Time 0.84s (± 0.00%) 0.85s (± 0.00%) +0.01s (+ 1.19%) 0.85s 0.85s p=0.001 n=6
Check Time 10.15s (± 0.60%) 10.23s (± 0.46%) ~ 10.18s 10.30s p=0.054 n=6
Emit Time 3.12s (± 0.92%) 3.16s (± 2.05%) ~ 3.09s 3.25s p=0.376 n=6
Total Time 15.67s (± 0.45%) 15.85s (± 0.52%) +0.18s (+ 1.15%) 15.74s 15.93s p=0.008 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,108k (± 0.00%) 338,200k (± 0.01%) +92k (+ 0.03%) 338,160k 338,233k p=0.005 n=6
Parse Time 2.87s (± 0.46%) 2.87s (± 0.97%) ~ 2.84s 2.91s p=1.000 n=6
Bind Time 1.10s (± 0.94%) 1.10s (± 0.37%) ~ 1.10s 1.11s p=0.924 n=6
Check Time 8.07s (± 0.50%) 8.09s (± 0.39%) ~ 8.05s 8.14s p=0.515 n=6
Emit Time 4.67s (± 1.03%) 4.69s (± 1.17%) ~ 4.65s 4.78s p=0.748 n=6
Total Time 16.72s (± 0.45%) 16.75s (± 0.21%) ~ 16.71s 16.80s p=0.748 n=6
TFS - node (v14.15.1, x64)
Memory used 294,292k (± 0.00%) 294,334k (± 0.01%) +42k (+ 0.01%) 294,301k 294,349k p=0.013 n=6
Parse Time 2.37s (± 1.05%) 2.42s (± 0.68%) +0.04s (+ 1.76%) 2.39s 2.44s p=0.029 n=6
Bind Time 1.06s (± 0.38%) 1.07s (± 1.13%) ~ 1.06s 1.09s p=0.527 n=6
Check Time 7.42s (± 0.47%) 7.48s (± 0.26%) +0.05s (+ 0.72%) 7.46s 7.51s p=0.005 n=6
Emit Time 4.26s (± 0.75%) 4.32s (± 1.14%) +0.07s (+ 1.57%) 4.26s 4.37s p=0.044 n=6
Total Time 15.11s (± 0.40%) 15.28s (± 0.41%) +0.17s (+ 1.10%) 15.20s 15.37s p=0.008 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,392k (± 0.00%) 471,764k (± 0.01%) +372k (+ 0.08%) 471,735k 471,807k p=0.005 n=6
Parse Time 3.45s (± 0.51%) 3.35s (± 0.29%) -0.10s (- 2.81%) 3.33s 3.36s p=0.004 n=6
Bind Time 1.00s (± 1.04%) 1.00s (± 0.98%) ~ 0.99s 1.02s p=0.547 n=6
Check Time 18.91s (± 0.34%) 19.08s (± 0.53%) +0.16s (+ 0.86%) 18.97s 19.25s p=0.013 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.37s (± 0.28%) 23.43s (± 0.46%) ~ 23.30s 23.60s p=0.335 n=6
xstate - node (v14.15.1, x64)
Memory used 535,172k (± 0.00%) 536,643k (± 0.00%) +1,471k (+ 0.27%) 536,608k 536,670k p=0.005 n=6
Parse Time 4.45s (± 0.46%) 4.26s (± 0.48%) 🟩-0.19s (- 4.30%) 4.23s 4.28s p=0.005 n=6
Bind Time 1.79s (± 0.46%) 1.67s (± 0.50%) 🟩-0.11s (- 6.25%) 1.67s 1.69s p=0.004 n=6
Check Time 3.18s (± 0.59%) 3.16s (± 0.89%) ~ 3.13s 3.20s p=0.258 n=6
Emit Time 0.09s (± 4.45%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.405 n=6
Total Time 9.51s (± 0.38%) 9.19s (± 0.30%) 🟩-0.32s (- 3.33%) 9.18s 9.25s p=0.004 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

TSServer

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,359ms (± 0.46%) 2,399ms (± 0.64%) +41ms (+ 1.72%) 2,386ms 2,426ms p=0.005 n=6
Req 2 - geterr 5,337ms (± 0.24%) 5,343ms (± 0.59%) ~ 5,314ms 5,399ms p=0.936 n=6
Req 3 - references 325ms (± 0.45%) 329ms (± 0.59%) +4ms (+ 1.23%) 327ms 332ms p=0.006 n=6
Req 4 - navto 285ms (± 0.72%) 284ms (± 1.19%) ~ 280ms 288ms p=0.518 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 79ms (± 1.13%) 67ms (± 0.94%) 🟩-12ms (-15.19%) 66ms 68ms p=0.004 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,516ms (± 0.66%) 2,549ms (± 1.19%) +34ms (+ 1.34%) 2,507ms 2,592ms p=0.045 n=6
Req 2 - geterr 4,009ms (± 0.59%) 4,017ms (± 0.65%) ~ 3,968ms 4,041ms p=0.422 n=6
Req 3 - references 346ms (± 0.72%) 345ms (± 0.81%) ~ 342ms 350ms p=0.746 n=6
Req 4 - navto 292ms (± 0.80%) 291ms (± 1.03%) ~ 288ms 296ms p=0.226 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 72ms (± 4.68%) 65ms (± 5.83%) 🟩-8ms (-10.60%) 62ms 70ms p=0.029 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,168ms (± 0.37%) 3,055ms (± 0.17%) 🟩-113ms (- 3.57%) 3,050ms 3,062ms p=0.005 n=6
Req 2 - geterr 1,600ms (± 0.44%) 1,599ms (± 0.89%) ~ 1,583ms 1,619ms p=0.810 n=6
Req 3 - references 103ms (± 2.42%) 106ms (± 1.54%) ~ 104ms 108ms p=0.124 n=6
Req 4 - navto 360ms (± 1.35%) 358ms (± 0.41%) ~ 357ms 360ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 428ms (± 0.46%) 423ms (± 0.52%) -5ms (- 1.09%) 420ms 426ms p=0.012 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,476ms (± 1.27%) 2,507ms (± 0.82%) ~ 2,488ms 2,533ms p=0.092 n=6
Req 2 - geterr 5,728ms (± 0.55%) 5,767ms (± 0.57%) ~ 5,720ms 5,803ms p=0.066 n=6
Req 3 - references 342ms (± 0.68%) 344ms (± 0.64%) ~ 341ms 347ms p=0.324 n=6
Req 4 - navto 279ms (± 1.69%) 277ms (± 0.91%) ~ 273ms 280ms p=0.935 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 94ms (± 4.70%) 74ms (± 1.43%) 🟩-21ms (-21.81%) 72ms 75ms p=0.004 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,672ms (± 1.01%) 2,693ms (± 0.96%) ~ 2,654ms 2,721ms p=0.298 n=6
Req 2 - geterr 4,362ms (± 0.22%) 4,368ms (± 0.67%) ~ 4,332ms 4,407ms p=0.687 n=6
Req 3 - references 360ms (± 0.53%) 356ms (± 1.01%) ~ 351ms 360ms p=0.086 n=6
Req 4 - navto 288ms (± 0.74%) 289ms (± 1.04%) ~ 284ms 293ms p=0.809 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 76ms (± 3.72%) 72ms (± 3.83%) ~ 68ms 74ms p=0.084 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,345ms (± 0.25%) 3,172ms (± 0.37%) 🟩-173ms (- 5.16%) 3,159ms 3,192ms p=0.005 n=6
Req 2 - geterr 1,733ms (± 1.32%) 1,742ms (± 1.20%) ~ 1,703ms 1,761ms p=0.520 n=6
Req 3 - references 112ms (± 0.88%) 115ms (± 0.92%) +3ms (+ 2.38%) 113ms 116ms p=0.007 n=6
Req 4 - navto 345ms (± 1.41%) 345ms (± 1.03%) ~ 342ms 352ms p=0.872 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 433ms (± 0.86%) 429ms (± 1.28%) ~ 420ms 434ms p=0.147 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,568ms (± 0.44%) 2,601ms (± 0.63%) +33ms (+ 1.28%) 2,583ms 2,622ms p=0.013 n=6
Req 2 - geterr 6,045ms (± 0.31%) 6,135ms (± 0.62%) +90ms (+ 1.49%) 6,085ms 6,196ms p=0.005 n=6
Req 3 - references 359ms (± 0.27%) 359ms (± 0.67%) ~ 355ms 361ms p=0.935 n=6
Req 4 - navto 275ms (± 0.54%) 282ms (± 1.91%) +7ms (+ 2.43%) 275ms 289ms p=0.016 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 (± 2.14%) 92ms (±10.00%) 🟩-9ms (- 8.61%) 81ms 101ms p=0.041 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,824ms (± 0.67%) 2,840ms (± 0.43%) ~ 2,823ms 2,855ms p=0.127 n=6
Req 2 - geterr 4,438ms (± 0.44%) 4,475ms (± 2.06%) ~ 4,418ms 4,660ms p=0.748 n=6
Req 3 - references 402ms (± 6.88%) 393ms (± 6.32%) ~ 370ms 418ms p=0.466 n=6
Req 4 - navto 290ms (± 1.47%) 291ms (± 1.71%) ~ 287ms 298ms p=0.466 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 98ms (± 3.32%) 92ms (±11.13%) ~ 81ms 102ms p=0.464 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,652ms (± 0.24%) 3,507ms (± 0.32%) 🟩-145ms (- 3.98%) 3,493ms 3,524ms p=0.005 n=6
Req 2 - geterr 1,841ms (± 0.83%) 1,845ms (± 0.99%) ~ 1,818ms 1,865ms p=0.809 n=6
Req 3 - references 129ms (± 1.79%) 125ms (± 0.51%) 🟩-4ms (- 3.23%) 124ms 126ms p=0.016 n=6
Req 4 - navto 375ms (± 0.99%) 377ms (± 0.49%) ~ 375ms 379ms p=0.252 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 449ms (± 3.36%) 449ms (± 1.52%) ~ 440ms 458ms p=0.936 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

Startup

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.53ms (± 0.24%) 141.45ms (± 0.24%) -0.09ms (- 0.06%) 140.72ms 147.71ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.58ms (± 0.19%) 229.20ms (± 0.47%) +2.61ms (+ 1.15%) 225.19ms 235.72ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.44ms (± 0.15%) 231.77ms (± 0.32%) +3.32ms (+ 1.46%) 227.53ms 240.18ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.31ms (± 0.16%) 212.54ms (± 0.27%) +3.23ms (+ 1.54%) 208.70ms 219.15ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53081 6
Baseline main 6

Developer Information:

Download Benchmark

@DanielRosenwasser
Copy link
Member

Would you be able to investigate what's getting slower on every benchmark that's not getting a speed boost?

@sandersn
Copy link
Member Author

sandersn commented Mar 6, 2023

Would you be able to investigate what's getting slower on every benchmark that's not getting a speed boost?

Specifically parsing in Compiler-Unions gets slightly (but significantly!) slower.

}
indent += whitespace.length;
Debug.assert(state !== JSDocState.SavingComments && state !== JSDocState.SavingBackticks, "whitespace shouldn't come from the scanner while saving comment text");
const whitespace = scanner.getTokenText();
Copy link
Member

@DanielRosenwasser DanielRosenwasser Mar 6, 2023

Choose a reason for hiding this comment

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

This slices whitespace, then you slice out of the whitespace. Swap this to grab the beginning/end of the whitespace, calculate the length, and slice right out of the original sourceText only if necessary.

Copy link
Member Author

Choose a reason for hiding this comment

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

That's a good idea. I noted it and will try it in a separate PR.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done: #53121

src/compiler/scanner.ts Outdated Show resolved Hide resolved
src/compiler/scanner.ts Outdated Show resolved Hide resolved
Except for the textToToken map exemption
@sandersn
Copy link
Member Author

sandersn commented Mar 6, 2023

A profile of compiler-unions shows that parseTrailingComments is slower, and that scanJSDocCommentTextToken adds to the time previously taken by scanJSDocToken. That doesn't make sense, since those calls should be replacing calls to scanJSDocToken.

I'm going to (1) re-run perf measurements on the most recent commit (maybe it's a fluke!) (2) step through comment parsing in compiler-unions to see if I can figure out if there's some problem there I'm missing.

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 6, 2023

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

Update: The results are in!

@jakebailey
Copy link
Member

My suspicion is that we're changing object allocation so much that GC is happening at a different time and causing other steps to take longer. But, I have no evidence for this besides --predictable changing things slightly.

@sandersn
Copy link
Member Author

sandersn commented Mar 6, 2023

Notably, with --predictable, the latest commit on my machine does not show a significant difference in total time for Compiler or Compiler-Unions.
And profiling a second time makes parseTrailingComments not a problem anymore. It doesn't seem to be stable.

I stepped through a few example parses in compiler-unions and didn't see anything suspicious either.

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,788k (± 0.02%) 360,027k (± 0.01%) +239k (+ 0.07%) 359,968k 360,082k p=0.005 n=6
Parse Time 3.48s (± 0.49%) 3.38s (± 0.64%) -0.10s (- 2.82%) 3.35s 3.41s p=0.005 n=6
Bind Time 1.13s (± 0.67%) 1.13s (± 0.67%) ~ 1.12s 1.14s p=1.000 n=6
Check Time 8.65s (± 0.39%) 8.67s (± 0.77%) ~ 8.59s 8.77s p=0.810 n=6
Emit Time 7.42s (± 0.82%) 7.43s (± 1.08%) ~ 7.35s 7.58s p=0.872 n=6
Total Time 20.68s (± 0.37%) 20.61s (± 0.62%) ~ 20.46s 20.80s p=0.229 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 193,530k (± 1.58%) 193,558k (± 1.58%) ~ 190,717k 196,443k p=0.575 n=6
Parse Time 1.49s (± 0.55%) 1.51s (± 1.16%) ~ 1.48s 1.52s p=0.069 n=6
Bind Time 0.77s (± 0.72%) 0.78s (± 0.71%) +0.01s (+ 1.31%) 0.77s 0.78s p=0.024 n=6
Check Time 9.39s (± 0.75%) 9.39s (± 1.23%) ~ 9.21s 9.50s p=0.810 n=6
Emit Time 2.74s (± 0.75%) 2.73s (± 0.59%) ~ 2.70s 2.75s p=0.326 n=6
Total Time 14.38s (± 0.57%) 14.40s (± 0.88%) ~ 14.21s 14.52s p=0.936 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,847k (± 0.01%) 343,922k (± 0.01%) +75k (+ 0.02%) 343,893k 343,948k p=0.005 n=6
Parse Time 2.62s (± 1.33%) 2.58s (± 1.44%) ~ 2.54s 2.63s p=0.147 n=6
Bind Time 1.01s (± 0.51%) 1.01s (± 0.51%) ~ 1.00s 1.01s p=0.069 n=6
Check Time 7.00s (± 0.46%) 7.01s (± 0.93%) ~ 6.92s 7.09s p=0.870 n=6
Emit Time 4.22s (± 1.11%) 4.25s (± 1.62%) ~ 4.16s 4.35s p=0.521 n=6
Total Time 14.87s (± 0.62%) 14.86s (± 1.11%) ~ 14.63s 15.06s p=0.936 n=6
TFS - node (v18.10.0, x64)
Memory used 299,861k (± 0.01%) 299,927k (± 0.01%) +66k (+ 0.02%) 299,889k 299,952k p=0.008 n=6
Parse Time 2.03s (± 1.44%) 2.06s (± 0.84%) ~ 2.03s 2.08s p=0.075 n=6
Bind Time 1.14s (± 0.36%) 1.15s (± 0.36%) +0.01s (+ 0.58%) 1.14s 1.15s p=0.034 n=6
Check Time 6.52s (± 1.34%) 6.52s (± 0.44%) ~ 6.49s 6.56s p=0.332 n=6
Emit Time 3.85s (± 1.06%) 3.85s (± 1.42%) ~ 3.80s 3.93s p=0.809 n=6
Total Time 13.54s (± 1.17%) 13.58s (± 0.56%) ~ 13.47s 13.66s p=0.172 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,415k (± 0.01%) 476,840k (± 0.01%) +424k (+ 0.09%) 476,781k 476,919k p=0.005 n=6
Parse Time 3.13s (± 0.72%) 2.99s (± 2.38%) 🟩-0.15s (- 4.73%) 2.89s 3.08s p=0.005 n=6
Bind Time 0.91s (± 0.83%) 0.99s (± 7.49%) +0.09s (+ 9.36%) 0.91s 1.07s p=0.018 n=6
Check Time 17.11s (± 0.78%) 17.30s (± 1.33%) ~ 17.06s 17.73s p=0.109 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.16s (± 0.73%) 21.28s (± 1.25%) ~ 20.99s 21.77s p=0.423 n=6
xstate - node (v18.10.0, x64)
Memory used 548,900k (± 0.01%) 550,308k (± 0.01%) +1,408k (+ 0.26%) 550,257k 550,395k p=0.005 n=6
Parse Time 4.08s (± 0.20%) 3.78s (± 0.94%) 🟩-0.31s (- 7.51%) 3.74s 3.83s p=0.004 n=6
Bind Time 1.67s (± 0.63%) 1.69s (± 1.37%) ~ 1.66s 1.72s p=0.224 n=6
Check Time 2.77s (± 0.74%) 2.77s (± 1.09%) ~ 2.73s 2.81s p=0.869 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.62s (± 0.33%) 8.33s (± 0.51%) 🟩-0.30s (- 3.46%) 8.27s 8.38s p=0.005 n=6
Angular - node (v16.17.1, x64)
Memory used 359,074k (± 0.01%) 359,393k (± 0.01%) +319k (+ 0.09%) 359,359k 359,420k p=0.005 n=6
Parse Time 3.71s (± 0.33%) 3.52s (± 0.93%) 🟩-0.19s (- 5.04%) 3.49s 3.58s p=0.005 n=6
Bind Time 1.20s (± 0.43%) 1.18s (± 0.44%) -0.01s (- 1.11%) 1.18s 1.19s p=0.009 n=6
Check Time 9.42s (± 0.48%) 9.45s (± 0.45%) ~ 9.38s 9.50s p=0.292 n=6
Emit Time 7.89s (± 0.33%) 7.89s (± 0.53%) ~ 7.82s 7.94s p=0.809 n=6
Total Time 22.21s (± 0.17%) 22.04s (± 0.25%) -0.17s (- 0.75%) 21.98s 22.14s p=0.005 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,446k (± 0.89%) 192,481k (± 0.03%) ~ 192,414k 192,536k p=0.378 n=6
Parse Time 1.56s (± 1.17%) 1.58s (± 0.52%) +0.02s (+ 1.39%) 1.57s 1.59s p=0.026 n=6
Bind Time 0.82s (± 0.00%) 0.82s (± 0.63%) ~ 0.82s 0.83s p=0.174 n=6
Check Time 10.12s (± 0.62%) 10.15s (± 0.86%) ~ 10.01s 10.28s p=0.421 n=6
Emit Time 3.00s (± 1.11%) 2.98s (± 0.66%) ~ 2.97s 3.02s p=0.373 n=6
Total Time 15.50s (± 0.35%) 15.54s (± 0.56%) ~ 15.40s 15.64s p=0.296 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,100k (± 0.01%) 343,198k (± 0.00%) +97k (+ 0.03%) 343,175k 343,209k p=0.005 n=6
Parse Time 2.78s (± 0.44%) 2.72s (± 0.28%) -0.05s (- 1.98%) 2.71s 2.73s p=0.005 n=6
Bind Time 1.08s (± 0.48%) 1.09s (± 0.37%) +0.01s (+ 0.77%) 1.09s 1.10s p=0.022 n=6
Check Time 7.69s (± 0.63%) 7.70s (± 0.34%) ~ 7.68s 7.75s p=0.872 n=6
Emit Time 4.41s (± 0.47%) 4.45s (± 0.51%) +0.04s (+ 0.95%) 4.41s 4.47s p=0.023 n=6
Total Time 15.96s (± 0.37%) 15.96s (± 0.26%) ~ 15.90s 16.01s p=0.936 n=6
TFS - node (v16.17.1, x64)
Memory used 299,242k (± 0.01%) 299,279k (± 0.00%) +37k (+ 0.01%) 299,268k 299,295k p=0.016 n=6
Parse Time 2.16s (± 0.29%) 2.18s (± 0.85%) ~ 2.16s 2.21s p=0.059 n=6
Bind Time 1.25s (± 0.71%) 1.25s (± 0.84%) ~ 1.23s 1.26s p=0.452 n=6
Check Time 7.17s (± 0.29%) 7.19s (± 0.46%) ~ 7.15s 7.24s p=0.227 n=6
Emit Time 4.34s (± 0.43%) 4.35s (± 1.45%) ~ 4.30s 4.47s p=0.462 n=6
Total Time 14.92s (± 0.18%) 14.96s (± 0.57%) ~ 14.89s 15.07s p=1.000 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,721k (± 0.02%) 476,167k (± 0.01%) +446k (+ 0.09%) 476,072k 476,258k p=0.005 n=6
Parse Time 3.29s (± 0.23%) 3.19s (± 1.18%) 🟩-0.10s (- 3.04%) 3.14s 3.24s p=0.005 n=6
Bind Time 0.96s (± 0.78%) 0.97s (± 2.12%) ~ 0.95s 1.00s p=0.279 n=6
Check Time 18.09s (± 0.92%) 18.09s (± 0.67%) ~ 17.99s 18.30s p=1.000 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.34s (± 0.73%) 22.25s (± 0.62%) ~ 22.15s 22.50s p=0.199 n=6
xstate - node (v16.17.1, x64)
Memory used 546,423k (± 0.02%) 548,047k (± 0.02%) +1,624k (+ 0.30%) 547,891k 548,218k p=0.005 n=6
Parse Time 4.26s (± 0.50%) 3.95s (± 0.47%) 🟩-0.30s (- 7.12%) 3.93s 3.98s p=0.005 n=6
Bind Time 1.77s (± 0.50%) 1.79s (± 0.65%) +0.02s (+ 1.22%) 1.78s 1.81s p=0.011 n=6
Check Time 2.96s (± 0.21%) 2.98s (± 0.39%) +0.02s (+ 0.62%) 2.96s 2.99s p=0.019 n=6
Emit Time 0.10s (± 5.34%) 0.09s (± 0.00%) 🟩-0.01s (- 6.90%) 0.09s 0.09s p=0.025 n=6
Total Time 9.09s (± 0.30%) 8.82s (± 0.43%) -0.27s (- 2.99%) 8.77s 8.86s p=0.005 n=6
Angular - node (v14.15.1, x64)
Memory used 352,860k (± 0.00%) 353,200k (± 0.01%) +340k (+ 0.10%) 353,165k 353,218k p=0.005 n=6
Parse Time 3.70s (± 0.50%) 3.58s (± 0.84%) 🟩-0.12s (- 3.20%) 3.54s 3.62s p=0.005 n=6
Bind Time 1.25s (± 0.60%) 1.23s (± 0.61%) -0.02s (- 1.86%) 1.22s 1.24s p=0.006 n=6
Check Time 9.72s (± 0.47%) 9.74s (± 0.30%) ~ 9.71s 9.79s p=0.374 n=6
Emit Time 8.31s (± 0.51%) 8.37s (± 0.48%) +0.05s (+ 0.66%) 8.30s 8.42s p=0.043 n=6
Total Time 22.98s (± 0.22%) 22.91s (± 0.21%) ~ 22.84s 22.96s p=0.065 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,644k (± 0.01%) 188,285k (± 0.71%) +641k (+ 0.34%) 187,699k 191,009k p=0.005 n=6
Parse Time 1.56s (± 0.33%) 1.60s (± 0.75%) +0.04s (+ 2.56%) 1.58s 1.61s p=0.004 n=6
Bind Time 0.84s (± 0.49%) 0.85s (± 0.65%) ~ 0.84s 0.85s p=0.054 n=6
Check Time 10.12s (± 0.44%) 10.22s (± 0.26%) +0.10s (+ 1.00%) 10.17s 10.24s p=0.008 n=6
Emit Time 3.13s (± 1.07%) 3.14s (± 0.86%) ~ 3.09s 3.17s p=0.373 n=6
Total Time 15.65s (± 0.29%) 15.81s (± 0.23%) +0.16s (+ 1.03%) 15.76s 15.87s p=0.005 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,135k (± 0.01%) 338,193k (± 0.01%) +58k (+ 0.02%) 338,164k 338,242k p=0.016 n=6
Parse Time 2.88s (± 0.54%) 2.85s (± 0.76%) -0.03s (- 1.16%) 2.82s 2.88s p=0.024 n=6
Bind Time 1.11s (± 1.74%) 1.10s (± 0.37%) ~ 1.09s 1.10s p=0.056 n=6
Check Time 8.08s (± 0.67%) 8.08s (± 0.39%) ~ 8.05s 8.13s p=0.808 n=6
Emit Time 4.70s (± 0.53%) 4.69s (± 0.52%) ~ 4.65s 4.72s p=0.414 n=6
Total Time 16.78s (± 0.40%) 16.71s (± 0.29%) ~ 16.64s 16.78s p=0.092 n=6
TFS - node (v14.15.1, x64)
Memory used 294,281k (± 0.00%) 294,335k (± 0.00%) +54k (+ 0.02%) 294,319k 294,348k p=0.005 n=6
Parse Time 2.38s (± 0.51%) 2.39s (± 0.49%) ~ 2.37s 2.40s p=0.507 n=6
Bind Time 1.07s (± 0.76%) 1.07s (± 0.76%) ~ 1.06s 1.08s p=1.000 n=6
Check Time 7.44s (± 0.75%) 7.47s (± 0.33%) ~ 7.43s 7.50s p=0.228 n=6
Emit Time 4.29s (± 0.34%) 4.30s (± 0.65%) ~ 4.25s 4.33s p=0.416 n=6
Total Time 15.18s (± 0.43%) 15.22s (± 0.15%) ~ 15.19s 15.25s p=0.172 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,375k (± 0.00%) 471,756k (± 0.01%) +380k (+ 0.08%) 471,725k 471,784k p=0.005 n=6
Parse Time 3.44s (± 0.40%) 3.33s (± 0.80%) 🟩-0.11s (- 3.34%) 3.31s 3.38s p=0.005 n=6
Bind Time 1.00s (± 0.98%) 1.00s (± 0.54%) ~ 1.00s 1.01s p=0.662 n=6
Check Time 18.96s (± 0.37%) 19.04s (± 0.71%) ~ 18.85s 19.24s p=0.336 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.41s (± 0.28%) 23.38s (± 0.60%) ~ 23.20s 23.56s p=0.575 n=6
xstate - node (v14.15.1, x64)
Memory used 535,177k (± 0.00%) 536,626k (± 0.00%) +1,450k (+ 0.27%) 536,598k 536,654k p=0.005 n=6
Parse Time 4.46s (± 0.57%) 4.24s (± 0.55%) 🟩-0.23s (- 5.08%) 4.21s 4.28s p=0.005 n=6
Bind Time 1.79s (± 0.50%) 1.67s (± 0.45%) 🟩-0.12s (- 6.61%) 1.66s 1.68s p=0.004 n=6
Check Time 3.17s (± 0.64%) 3.17s (± 0.67%) ~ 3.13s 3.19s p=1.000 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.51s (± 0.26%) 9.17s (± 0.41%) 🟩-0.35s (- 3.68%) 9.13s 9.23s p=0.005 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

TSServer

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,374ms (± 0.43%) 2,384ms (± 0.70%) ~ 2,370ms 2,408ms p=0.295 n=6
Req 2 - geterr 5,368ms (± 0.70%) 5,353ms (± 0.75%) ~ 5,311ms 5,419ms p=0.575 n=6
Req 3 - references 326ms (± 0.85%) 330ms (± 0.95%) ~ 325ms 334ms p=0.050 n=6
Req 4 - navto 286ms (± 0.88%) 284ms (± 0.82%) ~ 281ms 287ms p=0.225 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 (± 5.46%) 67ms (± 1.21%) 🟩-14ms (-16.87%) 66ms 68ms p=0.004 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,545ms (± 1.02%) 2,523ms (± 0.94%) ~ 2,493ms 2,563ms p=0.199 n=6
Req 2 - geterr 4,009ms (± 0.80%) 4,025ms (± 0.60%) ~ 3,991ms 4,057ms p=0.521 n=6
Req 3 - references 350ms (± 1.42%) 347ms (± 0.96%) ~ 342ms 352ms p=0.373 n=6
Req 4 - navto 293ms (± 0.41%) 294ms (± 0.59%) ~ 291ms 296ms p=0.566 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 76ms (± 9.47%) 70ms (±12.26%) ~ 62ms 85ms p=0.289 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,163ms (± 0.34%) 3,048ms (± 0.75%) 🟩-115ms (- 3.65%) 3,019ms 3,088ms p=0.005 n=6
Req 2 - geterr 1,603ms (± 1.54%) 1,594ms (± 0.67%) ~ 1,580ms 1,610ms p=0.810 n=6
Req 3 - references 105ms (± 1.78%) 105ms (± 1.86%) ~ 104ms 109ms p=0.871 n=6
Req 4 - navto 360ms (± 1.01%) 359ms (± 0.64%) ~ 356ms 362ms p=0.936 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 428ms (± 1.66%) 425ms (± 1.30%) ~ 420ms 434ms p=0.466 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,484ms (± 1.24%) 2,521ms (± 0.72%) ~ 2,502ms 2,542ms p=0.066 n=6
Req 2 - geterr 5,725ms (± 0.42%) 5,773ms (± 0.33%) +48ms (+ 0.84%) 5,740ms 5,795ms p=0.010 n=6
Req 3 - references 343ms (± 0.86%) 345ms (± 0.45%) ~ 343ms 347ms p=0.371 n=6
Req 4 - navto 277ms (± 0.81%) 278ms (± 1.08%) ~ 274ms 282ms p=1.000 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 91ms (± 4.41%) 80ms (±11.20%) ~ 73ms 91ms p=0.059 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,679ms (± 0.79%) 2,686ms (± 0.53%) ~ 2,673ms 2,711ms p=0.810 n=6
Req 2 - geterr 4,367ms (± 0.59%) 4,363ms (± 0.51%) ~ 4,321ms 4,384ms p=0.936 n=6
Req 3 - references 362ms (± 0.60%) 355ms (± 1.30%) -7ms (- 2.02%) 347ms 359ms p=0.006 n=6
Req 4 - navto 289ms (± 0.46%) 290ms (± 0.96%) ~ 286ms 293ms p=0.517 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 75ms (± 3.32%) 71ms (± 4.48%) ~ 68ms 75ms p=0.164 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,343ms (± 0.25%) 3,176ms (± 0.47%) 🟩-167ms (- 4.99%) 3,150ms 3,192ms p=0.005 n=6
Req 2 - geterr 1,782ms (± 3.86%) 1,746ms (± 0.80%) ~ 1,721ms 1,763ms p=0.229 n=6
Req 3 - references 112ms (± 1.69%) 115ms (± 1.69%) +3ms (+ 2.53%) 112ms 117ms p=0.040 n=6
Req 4 - navto 346ms (± 1.61%) 346ms (± 1.32%) ~ 340ms 353ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 433ms (± 1.06%) 427ms (± 0.79%) ~ 423ms 431ms p=0.064 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,594ms (± 0.76%) 2,609ms (± 0.52%) ~ 2,586ms 2,621ms p=0.199 n=6
Req 2 - geterr 6,090ms (± 0.38%) 6,117ms (± 0.54%) ~ 6,085ms 6,176ms p=0.108 n=6
Req 3 - references 359ms (± 0.18%) 357ms (± 1.08%) ~ 353ms 361ms p=0.934 n=6
Req 4 - navto 276ms (± 0.53%) 286ms (± 0.60%) +10ms (+ 3.62%) 284ms 288ms p=0.005 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 102ms (± 0.96%) 85ms (± 5.93%) 🟩-17ms (-16.97%) 80ms 91ms p=0.005 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,818ms (± 0.59%) 2,817ms (± 0.62%) ~ 2,797ms 2,841ms p=0.936 n=6
Req 2 - geterr 4,487ms (± 1.83%) 4,637ms (± 2.17%) ~ 4,437ms 4,702ms p=0.066 n=6
Req 3 - references 377ms (± 4.90%) 372ms (± 0.48%) ~ 370ms 375ms p=0.630 n=6
Req 4 - navto 294ms (± 1.36%) 292ms (± 0.91%) ~ 288ms 295ms p=0.416 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 96ms (± 9.23%) 83ms (± 2.64%) 🟩-13ms (-13.09%) 81ms 87ms p=0.019 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,663ms (± 0.75%) 3,498ms (± 0.27%) 🟩-165ms (- 4.50%) 3,486ms 3,511ms p=0.005 n=6
Req 2 - geterr 1,849ms (± 0.36%) 1,842ms (± 1.23%) ~ 1,813ms 1,873ms p=0.748 n=6
Req 3 - references 130ms (± 2.46%) 125ms (± 0.79%) 🟩-6ms (- 4.22%) 123ms 126ms p=0.016 n=6
Req 4 - navto 374ms (± 0.77%) 377ms (± 1.10%) ~ 373ms 384ms p=0.125 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 455ms (± 2.22%) 444ms (± 1.80%) ~ 436ms 456ms p=0.093 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

Startup

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.44ms (± 0.20%) 141.42ms (± 0.20%) ~ 140.51ms 145.12ms p=0.857 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 226.66ms (± 0.16%) 226.27ms (± 0.23%) -0.39ms (- 0.17%) 224.87ms 232.09ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 228.58ms (± 0.16%) 227.93ms (± 0.20%) -0.65ms (- 0.28%) 226.92ms 238.13ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 209.21ms (± 0.14%) 208.61ms (± 0.17%) -0.60ms (- 0.29%) 207.86ms 216.21ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53081 6
Baseline main 6

Developer Information:

Download Benchmark

@sandersn
Copy link
Member Author

sandersn commented Mar 6, 2023

After the latest commit, compiler-unions parsing is not significantly different on node 18, a tiny bit slower on 16 and slower on 14. But node 14 also transfers half of xstate's parser speedup to the binder.

I think we're seeing noise. At worst the code is better on most codebases and slightly worse on a few.

Copy link
Member

@jakebailey jakebailey left a comment

Choose a reason for hiding this comment

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

LGTM at this point, assuming we're still happy with the performance characteristics.

loop: while (true) {
switch (tok) {
case SyntaxKind.JSDocCommentTextToken:
Copy link
Member

Choose a reason for hiding this comment

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

This is a stupid nit, but I was tricked into thinking this token could be returned from token() before any other token because it comes first in the list. Maybe I would have not misunderstood had the case not been added at the top, but, I don't think it actually matters.

Copy link
Member Author

Choose a reason for hiding this comment

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

Is there a better place for it? I put it at the top because I thought it would be the most common and--who knows--maybe switch performance is order dependent. Except that with the improved scanner, it's not really more common than any other token.

Probably down with default is the best place.

Copy link
Member

Choose a reason for hiding this comment

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

I probably would have stuck it at the bottom, but, I don't really mind either way. Just a silly brain thing from me trying to understand the state machine.

@sandersn
Copy link
Member Author

sandersn commented Mar 7, 2023

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Mar 7, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 359,780k (± 0.01%) 360,064k (± 0.01%) +285k (+ 0.08%) 360,020k 360,106k p=0.005 n=6
Parse Time 3.48s (± 0.57%) 3.38s (± 1.35%) -0.10s (- 2.83%) 3.34s 3.45s p=0.006 n=6
Bind Time 1.12s (± 0.67%) 1.13s (± 0.79%) ~ 1.12s 1.14s p=0.053 n=6
Check Time 8.64s (± 0.44%) 8.67s (± 0.53%) ~ 8.61s 8.73s p=0.260 n=6
Emit Time 7.42s (± 0.46%) 7.46s (± 0.75%) ~ 7.40s 7.53s p=0.255 n=6
Total Time 20.66s (± 0.24%) 20.64s (± 0.30%) ~ 20.57s 20.72s p=0.336 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,618k (± 1.51%) 192,613k (± 1.51%) ~ 190,717k 196,381k p=0.689 n=6
Parse Time 1.47s (± 0.37%) 1.51s (± 1.06%) +0.03s (+ 2.26%) 1.49s 1.53s p=0.004 n=6
Bind Time 0.77s (± 0.72%) 0.77s (± 0.67%) +0.01s (+ 1.09%) 0.77s 0.78s p=0.038 n=6
Check Time 9.38s (± 0.92%) 9.42s (± 0.74%) ~ 9.32s 9.51s p=0.521 n=6
Emit Time 2.74s (± 1.17%) 2.72s (± 1.08%) ~ 2.68s 2.76s p=0.802 n=6
Total Time 14.36s (± 0.54%) 14.42s (± 0.46%) ~ 14.36s 14.51s p=0.077 n=6
Monaco - node (v18.10.0, x64)
Memory used 343,838k (± 0.01%) 343,923k (± 0.01%) +84k (+ 0.02%) 343,891k 343,971k p=0.013 n=6
Parse Time 2.62s (± 1.15%) 2.59s (± 0.58%) ~ 2.57s 2.61s p=0.052 n=6
Bind Time 1.01s (± 0.00%) 1.01s (± 0.51%) ~ 1.00s 1.01s p=0.174 n=6
Check Time 7.00s (± 0.53%) 7.00s (± 0.29%) ~ 6.97s 7.03s p=0.515 n=6
Emit Time 4.24s (± 1.15%) 4.22s (± 0.23%) ~ 4.21s 4.23s p=0.374 n=6
Total Time 14.88s (± 0.57%) 14.81s (± 0.15%) ~ 14.78s 14.84s p=0.127 n=6
TFS - node (v18.10.0, x64)
Memory used 299,869k (± 0.01%) 299,927k (± 0.01%) +58k (+ 0.02%) 299,913k 299,958k p=0.005 n=6
Parse Time 2.03s (± 1.34%) 2.05s (± 0.84%) ~ 2.03s 2.07s p=0.293 n=6
Bind Time 1.14s (± 0.66%) 1.14s (± 0.55%) ~ 1.13s 1.15s p=0.718 n=6
Check Time 6.51s (± 0.56%) 6.51s (± 0.43%) ~ 6.47s 6.55s p=0.871 n=6
Emit Time 3.86s (± 0.60%) 3.88s (± 1.13%) ~ 3.83s 3.95s p=0.809 n=6
Total Time 13.54s (± 0.37%) 13.58s (± 0.45%) ~ 13.52s 13.68s p=0.628 n=6
material-ui - node (v18.10.0, x64)
Memory used 476,446k (± 0.01%) 476,880k (± 0.01%) +435k (+ 0.09%) 476,797k 476,990k p=0.005 n=6
Parse Time 3.12s (± 0.52%) 3.01s (± 2.68%) 🟩-0.10s (- 3.32%) 2.90s 3.08s p=0.005 n=6
Bind Time 0.91s (± 0.45%) 0.96s (± 8.75%) ~ 0.90s 1.08s p=0.390 n=6
Check Time 17.02s (± 0.54%) 17.13s (± 0.74%) ~ 17.00s 17.28s p=0.125 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 21.04s (± 0.48%) 21.11s (± 0.59%) ~ 20.96s 21.27s p=0.423 n=6
xstate - node (v18.10.0, x64)
Memory used 548,986k (± 0.03%) 550,451k (± 0.03%) +1,465k (+ 0.27%) 550,293k 550,731k p=0.005 n=6
Parse Time 4.06s (± 0.40%) 3.76s (± 0.57%) 🟩-0.31s (- 7.51%) 3.74s 3.79s p=0.005 n=6
Bind Time 1.67s (± 0.88%) 1.68s (± 0.65%) ~ 1.66s 1.69s p=0.315 n=6
Check Time 2.76s (± 0.71%) 2.78s (± 0.86%) ~ 2.75s 2.82s p=0.317 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 4.99%) ~ 0.08s 0.09s p=0.405 n=6
Total Time 8.58s (± 0.41%) 8.30s (± 0.56%) 🟩-0.29s (- 3.34%) 8.26s 8.39s p=0.005 n=6
Angular - node (v16.17.1, x64)
Memory used 359,093k (± 0.00%) 359,423k (± 0.01%) +330k (+ 0.09%) 359,389k 359,461k p=0.005 n=6
Parse Time 3.71s (± 0.26%) 3.52s (± 0.59%) 🟩-0.19s (- 5.21%) 3.49s 3.54s p=0.005 n=6
Bind Time 1.19s (± 0.43%) 1.18s (± 0.00%) -0.01s (- 0.56%) 1.18s 1.18s p=0.025 n=6
Check Time 9.45s (± 0.39%) 9.41s (± 0.43%) ~ 9.35s 9.46s p=0.226 n=6
Emit Time 7.91s (± 0.80%) 7.90s (± 0.32%) ~ 7.87s 7.93s p=1.000 n=6
Total Time 22.25s (± 0.32%) 22.01s (± 0.22%) -0.24s (- 1.09%) 21.92s 22.06s p=0.005 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,353k (± 0.02%) 192,477k (± 0.03%) +125k (+ 0.06%) 192,378k 192,532k p=0.008 n=6
Parse Time 1.57s (± 0.77%) 1.57s (± 1.92%) ~ 1.52s 1.59s p=0.627 n=6
Bind Time 0.82s (± 0.50%) 0.82s (± 0.50%) ~ 0.82s 0.83s p=0.218 n=6
Check Time 10.09s (± 0.40%) 10.10s (± 0.46%) ~ 10.03s 10.16s p=0.810 n=6
Emit Time 2.98s (± 0.46%) 2.98s (± 0.65%) ~ 2.96s 3.01s p=0.460 n=6
Total Time 15.46s (± 0.25%) 15.46s (± 0.28%) ~ 15.43s 15.54s p=0.870 n=6
Monaco - node (v16.17.1, x64)
Memory used 343,115k (± 0.00%) 343,208k (± 0.01%) +93k (+ 0.03%) 343,183k 343,225k p=0.005 n=6
Parse Time 2.79s (± 0.62%) 2.73s (± 0.44%) -0.06s (- 2.33%) 2.71s 2.74s p=0.005 n=6
Bind Time 1.08s (± 0.00%) 1.09s (± 0.37%) +0.01s (+ 0.77%) 1.08s 1.09s p=0.007 n=6
Check Time 7.67s (± 0.46%) 7.72s (± 0.42%) ~ 7.68s 7.77s p=0.076 n=6
Emit Time 4.42s (± 0.89%) 4.43s (± 0.38%) ~ 4.41s 4.45s p=0.376 n=6
Total Time 15.96s (± 0.43%) 15.97s (± 0.21%) ~ 15.91s 16.01s p=0.686 n=6
TFS - node (v16.17.1, x64)
Memory used 299,252k (± 0.01%) 299,282k (± 0.01%) ~ 299,239k 299,302k p=0.092 n=6
Parse Time 2.16s (± 0.57%) 2.17s (± 0.71%) ~ 2.15s 2.19s p=0.101 n=6
Bind Time 1.23s (± 1.22%) 1.24s (± 1.11%) ~ 1.22s 1.25s p=0.869 n=6
Check Time 7.17s (± 0.56%) 7.16s (± 0.53%) ~ 7.09s 7.20s p=0.810 n=6
Emit Time 4.36s (± 0.68%) 4.34s (± 0.54%) ~ 4.32s 4.38s p=0.462 n=6
Total Time 14.92s (± 0.42%) 14.91s (± 0.44%) ~ 14.80s 14.97s p=0.936 n=6
material-ui - node (v16.17.1, x64)
Memory used 475,679k (± 0.00%) 476,121k (± 0.00%) +441k (+ 0.09%) 476,089k 476,152k p=0.005 n=6
Parse Time 3.28s (± 0.39%) 3.21s (± 0.36%) -0.07s (- 2.08%) 3.19s 3.22s p=0.004 n=6
Bind Time 0.96s (± 0.54%) 0.96s (± 0.42%) ~ 0.96s 0.97s p=0.114 n=6
Check Time 18.03s (± 0.33%) 18.00s (± 0.38%) ~ 17.91s 18.09s p=0.809 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.26s (± 0.27%) 22.18s (± 0.33%) ~ 22.07s 22.27s p=0.092 n=6
xstate - node (v16.17.1, x64)
Memory used 546,542k (± 0.02%) 547,967k (± 0.02%) +1,425k (+ 0.26%) 547,887k 548,121k p=0.005 n=6
Parse Time 4.26s (± 0.40%) 3.94s (± 0.38%) 🟩-0.32s (- 7.55%) 3.91s 3.95s p=0.005 n=6
Bind Time 1.76s (± 0.69%) 1.79s (± 0.85%) +0.03s (+ 1.61%) 1.76s 1.80s p=0.015 n=6
Check Time 2.98s (± 0.56%) 3.00s (± 0.54%) ~ 2.98s 3.02s p=0.115 n=6
Emit Time 0.09s (± 5.53%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.174 n=6
Total Time 9.09s (± 0.30%) 8.81s (± 0.27%) 🟩-0.28s (- 3.08%) 8.78s 8.85s p=0.005 n=6
Angular - node (v14.15.1, x64)
Memory used 352,882k (± 0.00%) 353,211k (± 0.00%) +330k (+ 0.09%) 353,201k 353,227k p=0.005 n=6
Parse Time 3.70s (± 0.34%) 3.56s (± 0.63%) 🟩-0.14s (- 3.69%) 3.54s 3.59s p=0.005 n=6
Bind Time 1.24s (± 0.33%) 1.22s (± 0.45%) -0.02s (- 1.34%) 1.22s 1.23s p=0.003 n=6
Check Time 9.74s (± 0.39%) 9.76s (± 0.43%) ~ 9.69s 9.80s p=0.465 n=6
Emit Time 8.34s (± 0.83%) 8.35s (± 0.92%) ~ 8.27s 8.45s p=0.748 n=6
Total Time 23.02s (± 0.40%) 22.89s (± 0.45%) -0.13s (- 0.54%) 22.77s 23.03s p=0.045 n=6
Compiler-Unions - node (v14.15.1, x64)
Memory used 187,647k (± 0.02%) 187,749k (± 0.01%) +102k (+ 0.05%) 187,731k 187,780k p=0.005 n=6
Parse Time 1.56s (± 0.41%) 1.60s (± 0.85%) +0.04s (+ 2.78%) 1.59s 1.62s p=0.004 n=6
Bind Time 0.85s (± 1.22%) 0.84s (± 0.61%) ~ 0.84s 0.85s p=0.774 n=6
Check Time 10.16s (± 0.71%) 10.17s (± 0.48%) ~ 10.12s 10.26s p=0.808 n=6
Emit Time 3.13s (± 0.29%) 3.13s (± 0.59%) ~ 3.11s 3.15s p=0.806 n=6
Total Time 15.70s (± 0.51%) 15.75s (± 0.32%) ~ 15.69s 15.82s p=0.258 n=6
Monaco - node (v14.15.1, x64)
Memory used 338,117k (± 0.01%) 338,207k (± 0.01%) +90k (+ 0.03%) 338,180k 338,241k p=0.005 n=6
Parse Time 2.87s (± 0.51%) 2.83s (± 0.41%) -0.04s (- 1.39%) 2.82s 2.85s p=0.006 n=6
Bind Time 1.10s (± 0.47%) 1.10s (± 0.37%) ~ 1.10s 1.11s p=0.114 n=6
Check Time 8.10s (± 0.42%) 8.05s (± 0.50%) -0.05s (- 0.62%) 7.99s 8.09s p=0.044 n=6
Emit Time 4.66s (± 0.35%) 4.70s (± 0.78%) ~ 4.64s 4.73s p=0.073 n=6
Total Time 16.73s (± 0.25%) 16.68s (± 0.28%) ~ 16.62s 16.75s p=0.171 n=6
TFS - node (v14.15.1, x64)
Memory used 294,304k (± 0.00%) 294,348k (± 0.00%) +44k (+ 0.02%) 294,322k 294,361k p=0.005 n=6
Parse Time 2.35s (± 0.42%) 2.40s (± 0.78%) +0.05s (+ 1.91%) 2.37s 2.42s p=0.005 n=6
Bind Time 1.06s (± 0.93%) 1.07s (± 1.37%) ~ 1.06s 1.10s p=0.081 n=6
Check Time 7.47s (± 0.60%) 7.45s (± 0.46%) ~ 7.38s 7.47s p=0.465 n=6
Emit Time 4.28s (± 0.67%) 4.29s (± 1.24%) ~ 4.24s 4.39s p=0.624 n=6
Total Time 15.17s (± 0.26%) 15.20s (± 0.44%) ~ 15.13s 15.33s p=0.257 n=6
material-ui - node (v14.15.1, x64)
Memory used 471,380k (± 0.00%) 471,776k (± 0.00%) +397k (+ 0.08%) 471,747k 471,794k p=0.005 n=6
Parse Time 3.44s (± 0.18%) 3.35s (± 0.49%) -0.09s (- 2.76%) 3.33s 3.37s p=0.004 n=6
Bind Time 1.00s (± 0.63%) 1.00s (± 0.41%) ~ 1.00s 1.01s p=0.673 n=6
Check Time 19.00s (± 0.49%) 19.04s (± 0.50%) ~ 18.89s 19.15s p=0.517 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.44s (± 0.41%) 23.38s (± 0.46%) ~ 23.22s 23.51s p=0.419 n=6
xstate - node (v14.15.1, x64)
Memory used 535,212k (± 0.00%) 536,674k (± 0.01%) +1,462k (+ 0.27%) 536,633k 536,706k p=0.005 n=6
Parse Time 4.46s (± 1.08%) 4.17s (± 1.45%) 🟩-0.30s (- 6.64%) 4.08s 4.23s p=0.005 n=6
Bind Time 1.76s (± 3.18%) 1.72s (± 4.15%) ~ 1.65s 1.82s p=0.257 n=6
Check Time 3.17s (± 0.61%) 3.18s (± 1.00%) ~ 3.14s 3.21s p=1.000 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.49s (± 0.22%) 9.16s (± 0.55%) 🟩-0.33s (- 3.48%) 9.11s 9.25s p=0.005 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

TSServer

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,367ms (± 0.43%) 2,388ms (± 0.65%) +21ms (+ 0.89%) 2,372ms 2,414ms p=0.020 n=6
Req 2 - geterr 5,335ms (± 0.59%) 5,350ms (± 0.54%) ~ 5,311ms 5,390ms p=0.378 n=6
Req 3 - references 326ms (± 1.23%) 329ms (± 0.35%) ~ 327ms 330ms p=0.373 n=6
Req 4 - navto 283ms (± 1.08%) 283ms (± 0.73%) ~ 280ms 285ms p=0.564 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 82ms (± 6.16%) 67ms (± 1.21%) 🟩-15ms (-17.89%) 66ms 68ms p=0.004 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,502ms (± 1.00%) 2,511ms (± 0.68%) ~ 2,482ms 2,533ms p=0.297 n=6
Req 2 - geterr 4,012ms (± 0.68%) 3,998ms (± 0.85%) ~ 3,973ms 4,051ms p=0.521 n=6
Req 3 - references 346ms (± 0.72%) 346ms (± 0.24%) ~ 345ms 347ms p=0.683 n=6
Req 4 - navto 292ms (± 0.40%) 292ms (± 0.59%) ~ 290ms 294ms p=1.000 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 76ms (± 6.66%) 72ms (±11.67%) ~ 64ms 85ms p=0.374 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,146ms (± 0.30%) 3,037ms (± 0.44%) 🟩-109ms (- 3.48%) 3,020ms 3,054ms p=0.005 n=6
Req 2 - geterr 1,611ms (± 0.63%) 1,582ms (± 0.59%) -29ms (- 1.78%) 1,574ms 1,598ms p=0.008 n=6
Req 3 - references 103ms (± 1.46%) 107ms (± 2.02%) +3ms (+ 3.23%) 104ms 110ms p=0.019 n=6
Req 4 - navto 361ms (± 1.22%) 357ms (± 0.18%) -4ms (- 1.06%) 356ms 358ms p=0.049 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 427ms (± 1.10%) 422ms (± 1.46%) ~ 415ms 430ms p=0.147 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,481ms (± 2.04%) 2,515ms (± 0.67%) ~ 2,482ms 2,529ms p=0.378 n=6
Req 2 - geterr 5,756ms (± 0.88%) 5,777ms (± 0.58%) ~ 5,740ms 5,823ms p=0.471 n=6
Req 3 - references 341ms (± 0.68%) 346ms (± 0.59%) +5ms (+ 1.37%) 343ms 348ms p=0.012 n=6
Req 4 - navto 278ms (± 1.31%) 277ms (± 0.68%) ~ 274ms 279ms p=0.468 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 92ms (± 5.20%) 74ms (± 0.74%) 🟩-19ms (-20.40%) 73ms 74ms p=0.004 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,686ms (± 1.04%) 2,694ms (± 0.78%) ~ 2,671ms 2,733ms p=0.572 n=6
Req 2 - geterr 4,363ms (± 0.15%) 4,364ms (± 0.35%) ~ 4,344ms 4,377ms p=0.470 n=6
Req 3 - references 361ms (± 1.09%) 355ms (± 0.78%) -6ms (- 1.57%) 351ms 358ms p=0.030 n=6
Req 4 - navto 289ms (± 0.78%) 290ms (± 1.18%) ~ 284ms 293ms p=0.256 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 74ms (± 2.17%) 72ms (± 7.09%) ~ 68ms 81ms p=0.112 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,344ms (± 0.32%) 3,171ms (± 0.38%) 🟩-173ms (- 5.17%) 3,149ms 3,183ms p=0.005 n=6
Req 2 - geterr 1,793ms (± 5.27%) 1,729ms (± 0.95%) ~ 1,705ms 1,756ms p=0.149 n=6
Req 3 - references 111ms (± 2.03%) 114ms (± 1.11%) +3ms (+ 3.01%) 112ms 116ms p=0.011 n=6
Req 4 - navto 344ms (± 1.32%) 345ms (± 1.20%) ~ 339ms 350ms p=1.000 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 436ms (± 1.13%) 437ms (± 4.84%) ~ 422ms 479ms p=0.128 n=6
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,566ms (± 0.68%) 2,610ms (± 0.31%) +44ms (+ 1.71%) 2,598ms 2,620ms p=0.008 n=6
Req 2 - geterr 6,060ms (± 0.69%) 6,099ms (± 0.52%) ~ 6,067ms 6,143ms p=0.230 n=6
Req 3 - references 357ms (± 0.60%) 357ms (± 1.47%) ~ 351ms 366ms p=0.935 n=6
Req 4 - navto 278ms (± 1.50%) 287ms (± 1.00%) +9ms (+ 3.24%) 282ms 290ms p=0.010 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 98ms (± 5.66%) 83ms (± 5.50%) 🟩-15ms (-15.28%) 80ms 90ms p=0.004 n=6
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,806ms (± 0.31%) 2,811ms (± 0.22%) ~ 2,802ms 2,819ms p=0.332 n=6
Req 2 - geterr 4,509ms (± 2.30%) 4,600ms (± 2.44%) +91ms (+ 2.01%) 4,448ms 4,683ms p=0.045 n=6
Req 3 - references 376ms (± 5.09%) 369ms (± 0.77%) ~ 366ms 373ms p=0.871 n=6
Req 4 - navto 292ms (± 1.55%) 292ms (± 1.25%) ~ 289ms 297ms p=1.000 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 89ms (± 9.23%) 86ms (± 9.04%) ~ 81ms 101ms p=0.227 n=6
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 3,642ms (± 0.44%) 3,503ms (± 0.89%) 🟩-139ms (- 3.80%) 3,471ms 3,547ms p=0.005 n=6
Req 2 - geterr 1,838ms (± 1.36%) 1,855ms (± 0.57%) ~ 1,839ms 1,870ms p=0.261 n=6
Req 3 - references 128ms (± 2.26%) 125ms (± 0.51%) ~ 124ms 126ms p=0.060 n=6
Req 4 - navto 375ms (± 1.03%) 375ms (± 0.54%) ~ 372ms 378ms p=0.466 n=6
Req 5 - completionInfo count 3,136 (± 0.00%) 3,136 (± 0.00%) ~ 3,136 3,136 p=1.000 n=6
Req 5 - completionInfo 453ms (± 2.63%) 451ms (± 1.06%) ~ 444ms 456ms p=1.000 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 53081 6
Baseline main 6

Startup

Comparison Report - main..53081
Metric main 53081 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 140.98ms (± 0.19%) 141.09ms (± 0.18%) +0.11ms (+ 0.08%) 140.49ms 146.65ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 225.33ms (± 0.16%) 228.71ms (± 0.48%) +3.38ms (+ 1.50%) 225.28ms 234.07ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 227.64ms (± 0.17%) 230.98ms (± 0.37%) +3.34ms (+ 1.47%) 227.16ms 236.75ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 208.31ms (± 0.19%) 212.39ms (± 0.26%) +4.08ms (+ 1.96%) 208.88ms 216.81ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-135-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 53081 6
Baseline main 6

Developer Information:

Download Benchmark

@sandersn sandersn merged commit 137c461 into microsoft:main Mar 8, 2023
@sandersn sandersn deleted the scan-bigger/fewer-jsdoc-tokens branch March 8, 2023 00:32
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
None yet
Development

Successfully merging this pull request may close these issues.

4 participants