Skip to content

Support control flow analysis for tagged template calls #53962

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

Closed
wants to merge 1 commit into from

Conversation

71
Copy link

@71 71 commented Apr 22, 2023

Fixes #51426. Note that it's not on the Backlog milestone, but the issue hasn't had any activity for a month so I thought I'd try sending a PR for review anyway.

@typescript-bot typescript-bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Apr 22, 2023
@typescript-bot
Copy link
Collaborator

The TypeScript team hasn't accepted the linked issue #51426. If you can get it accepted, this PR will have a better chance of being reviewed.

@sandersn sandersn self-assigned this May 2, 2023
@sandersn
Copy link
Member

sandersn commented May 2, 2023

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 2, 2023

Heya @sandersn, I've started to run the perf test suite on this PR at de96190. 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..53962
Metric main 53962 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 365,860k (± 0.01%) 365,875k (± 0.01%) ~ 365,837k 365,932k p=0.336 n=6
Parse Time 3.39s (± 0.51%) 3.43s (± 0.81%) +0.04s (+ 1.18%) 3.40s 3.47s p=0.019 n=6
Bind Time 1.11s (± 0.73%) 1.12s (± 0.92%) ~ 1.10s 1.13s p=0.546 n=6
Check Time 8.76s (± 0.31%) 8.73s (± 0.24%) ~ 8.71s 8.76s p=0.087 n=6
Emit Time 7.43s (± 0.22%) 7.43s (± 0.87%) ~ 7.37s 7.55s p=0.517 n=6
Total Time 20.69s (± 0.17%) 20.70s (± 0.43%) ~ 20.60s 20.86s p=0.936 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,842k (± 1.50%) 190,977k (± 0.02%) ~ 190,921k 191,044k p=0.471 n=6
Parse Time 1.50s (± 0.56%) 1.50s (± 1.36%) ~ 1.46s 1.52s p=0.326 n=6
Bind Time 0.77s (± 0.97%) 0.78s (± 0.66%) ~ 0.77s 0.78s p=0.247 n=6
Check Time 9.60s (± 0.53%) 9.69s (± 0.60%) +0.08s (+ 0.87%) 9.64s 9.77s p=0.030 n=6
Emit Time 2.76s (± 1.24%) 2.75s (± 1.05%) ~ 2.71s 2.79s p=0.515 n=6
Total Time 14.63s (± 0.43%) 14.71s (± 0.31%) ~ 14.65s 14.78s p=0.064 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,570k (± 0.01%) 346,561k (± 0.02%) ~ 346,461k 346,609k p=1.000 n=6
Parse Time 2.59s (± 0.82%) 2.59s (± 0.82%) ~ 2.56s 2.62s p=0.935 n=6
Bind Time 1.01s (± 0.81%) 1.00s (± 0.75%) ~ 0.99s 1.01s p=0.383 n=6
Check Time 7.19s (± 0.59%) 7.17s (± 0.42%) ~ 7.13s 7.21s p=0.627 n=6
Emit Time 4.28s (± 1.23%) 4.27s (± 0.96%) ~ 4.22s 4.31s p=1.000 n=6
Total Time 15.06s (± 0.64%) 15.03s (± 0.52%) ~ 14.93s 15.13s p=0.810 n=6
TFS - node (v18.10.0, x64)
Memory used 300,746k (± 0.01%) 300,766k (± 0.01%) ~ 300,742k 300,796k p=0.149 n=6
Parse Time 2.06s (± 1.08%) 2.07s (± 1.03%) ~ 2.05s 2.10s p=0.934 n=6
Bind Time 1.15s (± 1.19%) 1.13s (± 0.46%) ~ 1.13s 1.14s p=0.051 n=6
Check Time 6.62s (± 0.48%) 6.65s (± 0.50%) ~ 6.60s 6.69s p=0.228 n=6
Emit Time 3.88s (± 0.54%) 3.89s (± 0.38%) ~ 3.87s 3.91s p=0.417 n=6
Total Time 13.70s (± 0.39%) 13.74s (± 0.38%) ~ 13.68s 13.82s p=0.376 n=6
material-ui - node (v18.10.0, x64)
Memory used 482,310k (± 0.01%) 482,303k (± 0.01%) ~ 482,261k 482,359k p=0.689 n=6
Parse Time 3.09s (± 0.58%) 3.10s (± 0.67%) ~ 3.08s 3.14s p=0.289 n=6
Bind Time 0.92s (± 0.89%) 0.91s (± 0.83%) ~ 0.90s 0.92s p=0.082 n=6
Check Time 16.82s (± 0.47%) 16.81s (± 0.30%) ~ 16.76s 16.90s p=0.628 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.82s (± 0.41%) 20.83s (± 0.35%) ~ 20.75s 20.94s p=0.808 n=6
xstate - node (v18.10.0, x64)
Memory used 562,859k (± 0.02%) 562,781k (± 0.01%) ~ 562,722k 562,836k p=0.377 n=6
Parse Time 3.82s (± 0.65%) 3.85s (± 0.69%) ~ 3.80s 3.87s p=0.077 n=6
Bind Time 1.63s (± 0.64%) 1.64s (± 0.64%) +0.02s (+ 1.23%) 1.63s 1.66s p=0.029 n=6
Check Time 2.81s (± 0.39%) 2.83s (± 0.57%) +0.02s (+ 0.77%) 2.81s 2.85s p=0.032 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.33s (± 0.33%) 8.40s (± 0.42%) +0.07s (+ 0.84%) 8.35s 8.44s p=0.013 n=6
Angular - node (v16.17.1, x64)
Memory used 365,241k (± 0.00%) 365,265k (± 0.01%) ~ 365,200k 365,320k p=0.229 n=6
Parse Time 3.58s (± 1.08%) 3.58s (± 0.80%) ~ 3.54s 3.62s p=1.000 n=6
Bind Time 1.18s (± 0.87%) 1.18s (± 0.64%) ~ 1.17s 1.19s p=0.931 n=6
Check Time 9.60s (± 0.81%) 9.61s (± 0.55%) ~ 9.53s 9.67s p=0.687 n=6
Emit Time 7.93s (± 0.52%) 7.93s (± 0.85%) ~ 7.85s 8.03s p=0.748 n=6
Total Time 22.29s (± 0.62%) 22.30s (± 0.57%) ~ 22.16s 22.47s p=0.873 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,761k (± 0.03%) 192,737k (± 0.02%) ~ 192,683k 192,826k p=0.521 n=6
Parse Time 1.60s (± 0.47%) 1.61s (± 0.82%) ~ 1.59s 1.62s p=0.094 n=6
Bind Time 0.83s (± 0.00%) 0.83s (± 0.00%) ~ 0.83s 0.83s p=1.000 n=6
Check Time 10.31s (± 0.35%) 10.41s (± 0.88%) ~ 10.29s 10.54s p=0.077 n=6
Emit Time 3.02s (± 0.77%) 3.02s (± 0.47%) ~ 3.00s 3.04s p=0.870 n=6
Total Time 15.75s (± 0.40%) 15.87s (± 0.65%) ~ 15.72s 16.02s p=0.078 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,850k (± 0.00%) 345,855k (± 0.00%) ~ 345,836k 345,868k p=0.575 n=6
Parse Time 2.71s (± 0.40%) 2.75s (± 0.87%) +0.04s (+ 1.41%) 2.72s 2.79s p=0.009 n=6
Bind Time 1.09s (± 0.47%) 1.08s (± 0.59%) ~ 1.07s 1.09s p=0.091 n=6
Check Time 7.88s (± 0.31%) 7.88s (± 0.74%) ~ 7.81s 7.98s p=0.809 n=6
Emit Time 4.48s (± 1.12%) 4.51s (± 0.65%) ~ 4.47s 4.54s p=0.377 n=6
Total Time 16.16s (± 0.37%) 16.21s (± 0.52%) ~ 16.10s 16.35s p=0.258 n=6
TFS - node (v16.17.1, x64)
Memory used 300,094k (± 0.00%) 300,122k (± 0.01%) ~ 300,087k 300,151k p=0.078 n=6
Parse Time 2.15s (± 0.35%) 2.17s (± 0.54%) +0.02s (+ 0.93%) 2.16s 2.19s p=0.011 n=6
Bind Time 1.24s (± 0.88%) 1.24s (± 0.83%) ~ 1.22s 1.25s p=0.863 n=6
Check Time 7.26s (± 0.30%) 7.30s (± 0.62%) ~ 7.25s 7.34s p=0.217 n=6
Emit Time 4.36s (± 0.73%) 4.38s (± 0.88%) ~ 4.32s 4.42s p=0.469 n=6
Total Time 15.02s (± 0.24%) 15.09s (± 0.32%) +0.08s (+ 0.50%) 15.04s 15.15s p=0.012 n=6
material-ui - node (v16.17.1, x64)
Memory used 481,626k (± 0.01%) 481,595k (± 0.01%) ~ 481,538k 481,641k p=0.378 n=6
Parse Time 3.23s (± 0.23%) 3.26s (± 0.46%) +0.03s (+ 0.98%) 3.25s 3.28s p=0.004 n=6
Bind Time 0.94s (± 0.80%) 0.94s (± 0.43%) ~ 0.93s 0.94s p=1.000 n=6
Check Time 17.88s (± 0.51%) 17.89s (± 0.38%) ~ 17.78s 17.96s 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.05s (± 0.44%) 22.08s (± 0.39%) ~ 21.96s 22.18s p=0.630 n=6
xstate - node (v16.17.1, x64)
Memory used 560,407k (± 0.01%) 560,308k (± 0.01%) -99k (- 0.02%) 560,255k 560,400k p=0.045 n=6
Parse Time 3.99s (± 0.56%) 4.01s (± 0.30%) ~ 4.00s 4.03s p=0.107 n=6
Bind Time 1.76s (± 0.47%) 1.76s (± 0.47%) ~ 1.75s 1.77s p=0.796 n=6
Check Time 3.06s (± 0.17%) 3.06s (± 0.57%) ~ 3.03s 3.08s p=1.000 n=6
Emit Time 0.09s (± 4.62%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=0.405 n=6
Total Time 8.90s (± 0.33%) 8.93s (± 0.37%) ~ 8.89s 8.98s p=0.195 n=6
Angular - node (v14.21.3, x64)
Memory used 359,297k (± 0.01%) 359,278k (± 0.01%) ~ 359,250k 359,327k p=0.128 n=6
Parse Time 3.67s (± 0.47%) 3.69s (± 0.28%) +0.02s (+ 0.59%) 3.68s 3.71s p=0.021 n=6
Bind Time 1.21s (± 0.45%) 1.22s (± 0.69%) ~ 1.21s 1.23s p=0.855 n=6
Check Time 9.99s (± 0.53%) 10.01s (± 0.54%) ~ 9.94s 10.09s p=0.574 n=6
Emit Time 8.28s (± 0.70%) 8.29s (± 0.32%) ~ 8.26s 8.32s p=0.332 n=6
Total Time 23.15s (± 0.33%) 23.21s (± 0.28%) ~ 23.15s 23.32s p=0.261 n=6
Compiler-Unions - node (v14.21.3, x64)
Memory used 188,110k (± 0.01%) 188,119k (± 0.01%) ~ 188,094k 188,163k p=0.630 n=6
Parse Time 1.60s (± 0.85%) 1.62s (± 1.02%) ~ 1.59s 1.63s p=0.214 n=6
Bind Time 0.85s (± 0.48%) 0.85s (± 0.48%) ~ 0.85s 0.86s p=0.218 n=6
Check Time 10.46s (± 0.52%) 10.50s (± 0.81%) ~ 10.37s 10.63s p=0.376 n=6
Emit Time 3.18s (± 0.97%) 3.18s (± 0.76%) ~ 3.15s 3.22s p=0.746 n=6
Total Time 16.09s (± 0.39%) 16.14s (± 0.64%) ~ 15.96s 16.28s p=0.261 n=6
Monaco - node (v14.21.3, x64)
Memory used 340,968k (± 0.01%) 340,965k (± 0.00%) ~ 340,952k 340,983k p=0.297 n=6
Parse Time 2.79s (± 0.54%) 2.81s (± 0.43%) +0.02s (+ 0.72%) 2.80s 2.83s p=0.042 n=6
Bind Time 1.11s (± 1.05%) 1.11s (± 1.09%) ~ 1.10s 1.13s p=0.502 n=6
Check Time 8.16s (± 0.47%) 8.19s (± 0.15%) ~ 8.17s 8.20s p=0.368 n=6
Emit Time 4.73s (± 0.75%) 4.74s (± 0.39%) ~ 4.71s 4.76s p=0.935 n=6
Total Time 16.80s (± 0.26%) 16.85s (± 0.15%) ~ 16.80s 16.87s p=0.060 n=6
TFS - node (v14.21.3, x64)
Memory used 295,290k (± 0.00%) 295,301k (± 0.00%) ~ 295,288k 295,315k p=0.065 n=6
Parse Time 2.39s (± 0.82%) 2.40s (± 0.57%) ~ 2.39s 2.43s p=0.183 n=6
Bind Time 1.07s (± 0.78%) 1.07s (± 0.70%) ~ 1.06s 1.08s p=0.172 n=6
Check Time 7.59s (± 0.49%) 7.65s (± 0.39%) +0.06s (+ 0.79%) 7.61s 7.70s p=0.019 n=6
Emit Time 4.35s (± 0.84%) 4.38s (± 0.64%) ~ 4.35s 4.42s p=0.145 n=6
Total Time 15.39s (± 0.33%) 15.51s (± 0.33%) +0.12s (+ 0.77%) 15.43s 15.58s p=0.013 n=6
material-ui - node (v14.21.3, x64)
Memory used 477,188k (± 0.01%) 477,186k (± 0.01%) ~ 477,154k 477,224k p=0.810 n=6
Parse Time 3.32s (± 0.45%) 3.33s (± 0.84%) ~ 3.29s 3.36s p=0.325 n=6
Bind Time 1.00s (± 0.41%) 1.00s (± 0.75%) ~ 0.99s 1.01s p=0.389 n=6
Check Time 18.76s (± 0.70%) 18.85s (± 0.74%) ~ 18.70s 19.01s p=0.468 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.08s (± 0.62%) 23.19s (± 0.62%) ~ 23.04s 23.35s p=0.092 n=6
xstate - node (v14.21.3, x64)
Memory used 549,321k (± 0.00%) 549,342k (± 0.00%) ~ 549,323k 549,362k p=0.128 n=6
Parse Time 4.19s (± 0.37%) 4.22s (± 0.59%) +0.03s (+ 0.76%) 4.19s 4.26s p=0.022 n=6
Bind Time 1.66s (± 2.25%) 1.67s (± 2.56%) ~ 1.58s 1.69s p=0.084 n=6
Check Time 3.18s (± 0.62%) 3.18s (± 0.66%) ~ 3.15s 3.20s p=0.687 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.11s (± 0.59%) 9.16s (± 0.39%) ~ 9.11s 9.20s p=0.092 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-148-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Angular - node (v18.10.0, x64)
  • Angular - node (v16.17.1, x64)
  • Angular - node (v14.21.3, x64)
  • Compiler-Unions - node (v18.10.0, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Compiler-Unions - node (v14.21.3, x64)
  • Monaco - node (v18.10.0, x64)
  • Monaco - node (v16.17.1, x64)
  • Monaco - node (v14.21.3, x64)
  • TFS - node (v18.10.0, x64)
  • TFS - node (v16.17.1, x64)
  • TFS - node (v14.21.3, x64)
  • material-ui - node (v18.10.0, x64)
  • material-ui - node (v16.17.1, x64)
  • material-ui - node (v14.21.3, x64)
  • xstate - node (v18.10.0, x64)
  • xstate - node (v16.17.1, x64)
  • xstate - node (v14.21.3, x64)
Benchmark Name Iterations
Current 53962 6
Baseline main 6

TSServer

Comparison Report - main..53962
Metric main 53962 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,532ms (± 0.76%) 2,542ms (± 0.75%) ~ 2,516ms 2,564ms p=0.470 n=6
Req 2 - geterr 5,742ms (± 0.62%) 5,750ms (± 0.24%) ~ 5,729ms 5,767ms p=0.810 n=6
Req 3 - references 344ms (± 0.93%) 344ms (± 0.70%) ~ 342ms 348ms p=0.808 n=6
Req 4 - navto 282ms (± 0.59%) 285ms (± 1.41%) ~ 279ms 291ms p=0.170 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 85ms (± 1.24%) 85ms (± 1.21%) ~ 84ms 87ms p=0.241 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,647ms (± 0.88%) 2,661ms (± 0.37%) ~ 2,646ms 2,671ms p=0.093 n=6
Req 2 - geterr 4,316ms (± 1.73%) 4,369ms (± 0.29%) +53ms (+ 1.22%) 4,353ms 4,389ms p=0.020 n=6
Req 3 - references 347ms (± 0.51%) 351ms (± 1.04%) ~ 347ms 356ms p=0.102 n=6
Req 4 - navto 291ms (± 0.85%) 289ms (± 0.55%) ~ 287ms 291ms p=0.145 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 64ms (± 5.41%) 64ms (± 4.17%) ~ 62ms 69ms p=1.000 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,078ms (± 0.71%) 3,083ms (± 1.05%) ~ 3,040ms 3,129ms p=0.936 n=6
Req 2 - geterr 1,597ms (± 1.11%) 1,609ms (± 1.33%) ~ 1,582ms 1,633ms p=0.334 n=6
Req 3 - references 107ms (± 1.72%) 109ms (± 3.23%) ~ 106ms 115ms p=0.406 n=6
Req 4 - navto 363ms (± 0.47%) 364ms (± 0.51%) ~ 362ms 367ms p=0.565 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 373ms (± 1.07%) 377ms (± 0.90%) ~ 371ms 380ms p=0.195 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,673ms (± 0.66%) 2,675ms (± 0.58%) ~ 2,660ms 2,703ms p=0.936 n=6
Req 2 - geterr 6,194ms (± 0.59%) 6,206ms (± 0.91%) ~ 6,140ms 6,299ms p=0.810 n=6
Req 3 - references 353ms (± 0.86%) 356ms (± 0.63%) ~ 353ms 359ms p=0.145 n=6
Req 4 - navto 284ms (± 0.59%) 287ms (± 1.18%) ~ 283ms 292ms p=0.163 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.28%) 88ms (± 7.39%) ~ 79ms 94ms p=0.743 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,820ms (± 0.53%) 2,829ms (± 0.70%) ~ 2,804ms 2,855ms p=0.575 n=6
Req 2 - geterr 4,726ms (± 0.50%) 4,716ms (± 0.41%) ~ 4,686ms 4,742ms p=0.575 n=6
Req 3 - references 363ms (± 0.59%) 362ms (± 0.33%) ~ 361ms 364ms p=0.415 n=6
Req 4 - navto 286ms (± 0.87%) 285ms (± 0.88%) ~ 282ms 288ms p=0.807 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 68ms (± 0.60%) 67ms (± 1.13%) -1ms (- 1.47%) 66ms 68ms p=0.029 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,211ms (± 0.47%) 3,219ms (± 0.40%) ~ 3,195ms 3,230ms p=0.378 n=6
Req 2 - geterr 1,748ms (± 0.50%) 1,752ms (± 0.80%) ~ 1,739ms 1,775ms p=0.687 n=6
Req 3 - references 122ms (± 1.54%) 131ms (± 8.12%) +9ms (+ 7.68%) 123ms 145ms p=0.019 n=6
Req 4 - navto 345ms (± 0.77%) 345ms (± 0.83%) ~ 342ms 349ms p=1.000 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 407ms (± 2.83%) 398ms (± 0.78%) ~ 394ms 402ms p=0.147 n=6
Compiler-UnionsTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,783ms (± 1.32%) 2,797ms (± 0.52%) ~ 2,778ms 2,820ms p=0.378 n=6
Req 2 - geterr 6,334ms (± 0.32%) 6,379ms (± 0.80%) ~ 6,295ms 6,451ms p=0.065 n=6
Req 3 - references 366ms (± 1.08%) 368ms (± 0.57%) ~ 365ms 371ms p=0.418 n=6
Req 4 - navto 290ms (± 0.49%) 291ms (± 1.34%) ~ 289ms 299ms 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 100ms (± 5.29%) 103ms (± 1.34%) ~ 100ms 104ms p=0.741 n=6
CompilerTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,955ms (± 0.48%) 2,974ms (± 0.57%) ~ 2,957ms 3,006ms p=0.077 n=6
Req 2 - geterr 4,571ms (± 0.76%) 4,592ms (± 0.70%) ~ 4,539ms 4,620ms p=0.298 n=6
Req 3 - references 380ms (± 0.66%) 377ms (± 0.46%) ~ 375ms 380ms p=0.167 n=6
Req 4 - navto 298ms (± 0.87%) 300ms (± 0.46%) ~ 298ms 301ms p=0.222 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 (± 0.68%) 76ms (± 0.99%) ~ 75ms 77ms p=0.784 n=6
xstateTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 3,501ms (± 0.80%) 3,493ms (± 1.09%) ~ 3,429ms 3,539ms p=0.810 n=6
Req 2 - geterr 1,844ms (± 0.26%) 1,850ms (± 0.62%) ~ 1,835ms 1,870ms p=0.228 n=6
Req 3 - references 147ms (± 8.55%) 155ms (± 5.22%) ~ 139ms 161ms p=0.173 n=6
Req 4 - navto 394ms (± 1.07%) 402ms (± 1.61%) +8ms (+ 2.03%) 395ms 411ms p=0.045 n=6
Req 5 - completionInfo count 2,862 (± 0.00%) 2,862 (± 0.00%) ~ 2,862 2,862 p=1.000 n=6
Req 5 - completionInfo 432ms (± 0.91%) 432ms (± 1.59%) ~ 424ms 442ms p=0.748 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-148-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v18.10.0, x64)
  • node (v16.17.1, x64)
  • node (v14.21.3, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v18.10.0, x64)
  • Compiler-UnionsTSServer - node (v16.17.1, x64)
  • Compiler-UnionsTSServer - node (v14.21.3, x64)
  • CompilerTSServer - node (v18.10.0, x64)
  • CompilerTSServer - node (v16.17.1, x64)
  • CompilerTSServer - node (v14.21.3, x64)
  • xstateTSServer - node (v18.10.0, x64)
  • xstateTSServer - node (v16.17.1, x64)
  • xstateTSServer - node (v14.21.3, x64)
Benchmark Name Iterations
Current 53962 6
Baseline main 6

Startup

Comparison Report - main..53962
Metric main 53962 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 141.03ms (± 0.23%) 141.54ms (± 0.21%) +0.51ms (+ 0.36%) 140.71ms 143.98ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 219.48ms (± 0.19%) 221.05ms (± 0.21%) +1.57ms (+ 0.72%) 219.70ms 225.95ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 221.33ms (± 0.22%) 222.28ms (± 0.24%) +0.95ms (+ 0.43%) 220.92ms 232.85ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 203.19ms (± 0.22%) 204.29ms (± 0.26%) +1.10ms (+ 0.54%) 202.84ms 209.35ms p=0.000 n=600
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-148-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • tsc-startup - node (v16.17.1, x64)
  • tsserver-startup - node (v16.17.1, x64)
  • tsserverlibrary-startup - node (v16.17.1, x64)
  • typescript-startup - node (v16.17.1, x64)
Benchmark Name Iterations
Current 53962 6
Baseline main 6

Developer Information:

Download Benchmark

@71
Copy link
Author

71 commented May 3, 2023

I'm surprised that there are significant deltas with main. Is it perhaps because this branch is pretty outdated (or is the perf run rebasing with main before running everything)?

@jakebailey
Copy link
Member

I'm surprised that there are significant deltas with main. Is it perhaps because this branch is pretty outdated (or is the perf run rebasing with main before running everything)?

All CI runs on the merge-head, which is main + the PR. That being said, there inherent noise.

@typescript-bot perf test this faster

@typescript-bot
Copy link
Collaborator

typescript-bot commented May 3, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - main..53962

Metric main 53962 Delta Best Worst p-value
Angular - node (v16.17.1, x64)
Memory used 365,245k (± 0.01%) 365,285k (± 0.01%) +41k (+ 0.01%) 365,244k 365,324k p=0.036 n=6
Parse Time 3.56s (± 0.88%) 3.55s (± 0.39%) ~ 3.54s 3.57s p=0.745 n=6
Bind Time 1.18s (± 0.44%) 1.18s (± 0.44%) ~ 1.18s 1.19s p=0.069 n=6
Check Time 9.61s (± 0.61%) 9.57s (± 0.51%) ~ 9.51s 9.64s p=0.292 n=6
Emit Time 7.97s (± 0.72%) 7.93s (± 0.57%) ~ 7.88s 8.00s p=0.172 n=6
Total Time 22.32s (± 0.48%) 22.24s (± 0.22%) ~ 22.15s 22.28s p=0.145 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 192,691k (± 0.01%) 192,712k (± 0.04%) ~ 192,632k 192,812k p=0.688 n=6
Parse Time 1.59s (± 1.42%) 1.59s (± 0.92%) ~ 1.57s 1.61s p=0.870 n=6
Bind Time 0.83s (± 0.90%) 0.82s (± 0.99%) ~ 0.81s 0.83s p=0.120 n=6
Check Time 10.38s (± 0.21%) 10.30s (± 0.68%) ~ 10.21s 10.40s p=0.077 n=6
Emit Time 3.02s (± 0.41%) 3.04s (± 0.64%) +0.02s (+ 0.77%) 3.01s 3.06s p=0.050 n=6
Total Time 15.81s (± 0.29%) 15.75s (± 0.43%) ~ 15.68s 15.85s p=0.147 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,851k (± 0.00%) 345,865k (± 0.00%) ~ 345,851k 345,888k p=0.149 n=6
Parse Time 2.73s (± 0.51%) 2.72s (± 0.33%) ~ 2.71s 2.73s p=0.357 n=6
Bind Time 1.09s (± 0.47%) 1.09s (± 0.58%) ~ 1.08s 1.10s p=0.386 n=6
Check Time 7.88s (± 0.44%) 7.91s (± 0.63%) ~ 7.86s 7.98s p=0.687 n=6
Emit Time 4.50s (± 1.01%) 4.47s (± 0.90%) ~ 4.42s 4.53s p=0.228 n=6
Total Time 16.20s (± 0.50%) 16.18s (± 0.40%) ~ 16.08s 16.28s p=0.520 n=6
TFS - node (v16.17.1, x64)
Memory used 300,123k (± 0.01%) 300,132k (± 0.01%) ~ 300,109k 300,155k p=0.295 n=6
Parse Time 2.14s (± 0.48%) 2.16s (± 0.68%) ~ 2.14s 2.17s p=0.094 n=6
Bind Time 1.24s (± 0.72%) 1.24s (± 0.61%) ~ 1.23s 1.25s p=0.798 n=6
Check Time 7.29s (± 0.32%) 7.28s (± 0.41%) ~ 7.25s 7.33s p=0.686 n=6
Emit Time 4.39s (± 0.93%) 4.38s (± 0.63%) ~ 4.34s 4.42s p=0.808 n=6
Total Time 15.06s (± 0.21%) 15.06s (± 0.34%) ~ 15.00s 15.14s p=0.872 n=6
material-ui - node (v16.17.1, x64)
Memory used 481,588k (± 0.01%) 481,610k (± 0.01%) ~ 481,549k 481,651k p=0.810 n=6
Parse Time 3.25s (± 0.45%) 3.24s (± 0.28%) ~ 3.23s 3.25s p=0.164 n=6
Bind Time 0.94s (± 0.43%) 0.94s (± 0.80%) ~ 0.93s 0.95s p=0.389 n=6
Check Time 17.93s (± 0.35%) 17.86s (± 0.20%) ~ 17.80s 17.90s p=0.053 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.13s (± 0.30%) 22.04s (± 0.15%) -0.09s (- 0.38%) 21.98s 22.07s p=0.045 n=6
xstate - node (v16.17.1, x64)
Memory used 560,400k (± 0.01%) 560,442k (± 0.02%) ~ 560,305k 560,543k p=0.378 n=6
Parse Time 3.99s (± 0.53%) 3.99s (± 0.37%) ~ 3.98s 4.02s p=1.000 n=6
Bind Time 1.77s (± 0.00%) 1.75s (± 0.43%) -0.02s (- 1.04%) 1.74s 1.76s p=0.003 n=6
Check Time 3.07s (± 0.89%) 3.06s (± 0.45%) ~ 3.05s 3.09s p=0.868 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 8.92s (± 0.47%) 8.90s (± 0.22%) ~ 8.88s 8.93s p=0.419 n=6
System
Machine Namets-ci-ubuntu
Platformlinux 5.4.0-148-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v16.17.1, x64)
Scenarios
  • Angular - node (v16.17.1, x64)
  • Compiler-Unions - node (v16.17.1, x64)
  • Monaco - node (v16.17.1, x64)
  • TFS - node (v16.17.1, x64)
  • material-ui - node (v16.17.1, x64)
  • xstate - node (v16.17.1, x64)
Benchmark Name Iterations
Current 53962 6
Baseline main 6

Developer Information:

Download Benchmark

@sandersn
Copy link
Member

sandersn commented May 4, 2023

The results look like noise. On the other hand, control flow changes can slow down the binder (more allocation) and the checker (more nodes to iterate over).

@sandersn
Copy link
Member

sandersn commented May 4, 2023

However, the bug still needs to be accepted for us to review this. Knowing that the change isn't horribly slow helps make the case for it, but it's marked "Awaiting More Feedback", which means that we're waiting for more people to agree that they need this and add more examples of usage.

@sandersn
Copy link
Member

sandersn commented Dec 6, 2023

To help with PR housekeeping, I'm going to close this PR since it's pretty old now. We can reopen and merge with main if its bug gets accepted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

support control flow analysis of tagged template calls
4 participants