TypeScript
TypeScript copied to clipboard
Support control flow analysis for tagged template calls
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.
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.
@typescript-bot perf test this
Heya @sandersn, I've started to run the perf test suite on this PR at de96190401979ebebbc7089fe5ac87673f1a6191. You can monitor the build here.
Update: The results are in!
@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 |
| Machine Name | ts-ci-ubuntu |
|---|---|
| Platform | linux 5.4.0-148-generic |
| Architecture | x64 |
| Available Memory | 16 GB |
| Available Memory | 15 GB |
| CPUs | 4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz |
- node (v18.10.0, x64)
- node (v16.17.1, x64)
- node (v14.21.3, x64)
- 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 |
| Machine Name | ts-ci-ubuntu |
|---|---|
| Platform | linux 5.4.0-148-generic |
| Architecture | x64 |
| Available Memory | 16 GB |
| Available Memory | 15 GB |
| CPUs | 4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz |
- node (v18.10.0, x64)
- node (v16.17.1, x64)
- node (v14.21.3, x64)
- 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 |
| Machine Name | ts-ci-ubuntu |
|---|---|
| Platform | linux 5.4.0-148-generic |
| Architecture | x64 |
| Available Memory | 16 GB |
| Available Memory | 15 GB |
| CPUs | 4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz |
- node (v16.17.1, x64)
- 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:
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)?
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 withmainbefore 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
Heya @jakebailey, I've started to run the abridged perf test suite on this PR at de96190401979ebebbc7089fe5ac87673f1a6191. You can monitor the build here.
Update: The results are in!
@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 |
| Machine Name | ts-ci-ubuntu |
|---|---|
| Platform | linux 5.4.0-148-generic |
| Architecture | x64 |
| Available Memory | 16 GB |
| Available Memory | 15 GB |
| CPUs | 4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz |
- node (v16.17.1, x64)
- 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:
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).
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.
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.