Skip to content

Optimize eagerly calculating CouldContainTypeVariables during object type instantiation #54538

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

Conversation

weswigham
Copy link
Member

@weswigham weswigham commented Jun 5, 2023

Basically, this conditionalizes the carrying-forward of type variable containment checks within getObjectTypeInstantiation more. The existing check pulls the flags forward onto primitives/unions/intersections which may result from instantiateMappedType unconditionally. This means we may mark unions and intersections as possibly containing type parameters when they in fact cannot.

Noticed this while rereviewing #53246 while reviewing #54507

within `getObjectTypeInstantiation` more. The existing check pulls the
flags forward onto primitives/unions/intersections which may result from
`instantiateMappedType` unconditionally. This means we may mark unions
and intersections as possibly containing type parameters when they in
fact cannot.
@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jun 5, 2023
@weswigham
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 5, 2023

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..54538
Metric main 54538 Delta Best Worst p-value
Angular - node (v18.10.0, x64)
Memory used 366,147k (± 0.00%) 366,123k (± 0.01%) -24k (- 0.01%) 366,097k 366,153k p=0.030 n=6
Parse Time 3.44s (± 0.24%) 3.43s (± 0.34%) -0.02s (- 0.44%) 3.42s 3.45s p=0.047 n=6
Bind Time 1.12s (± 0.56%) 1.11s (± 0.46%) ~ 1.11s 1.12s p=0.091 n=6
Check Time 8.80s (± 0.49%) 8.78s (± 0.67%) ~ 8.70s 8.85s p=0.630 n=6
Emit Time 7.50s (± 0.65%) 7.45s (± 0.55%) ~ 7.40s 7.51s p=0.148 n=6
Total Time 20.86s (± 0.36%) 20.78s (± 0.44%) ~ 20.68s 20.88s p=0.092 n=6
Compiler-Unions - node (v18.10.0, x64)
Memory used 192,573k (± 1.27%) 191,181k (± 0.02%) ~ 191,132k 191,216k p=0.748 n=6
Parse Time 1.52s (± 0.79%) 1.49s (± 1.83%) ~ 1.46s 1.53s p=0.059 n=6
Bind Time 0.78s (± 0.66%) 0.77s (± 1.27%) ~ 0.76s 0.79s p=0.191 n=6
Check Time 9.57s (± 0.70%) 9.47s (± 0.11%) -0.09s (- 0.99%) 9.46s 9.48s p=0.004 n=6
Emit Time 2.75s (± 0.63%) 2.77s (± 0.84%) ~ 2.74s 2.80s p=0.460 n=6
Total Time 14.62s (± 0.51%) 14.50s (± 0.38%) -0.12s (- 0.80%) 14.43s 14.56s p=0.020 n=6
Monaco - node (v18.10.0, x64)
Memory used 346,613k (± 0.01%) 346,623k (± 0.01%) ~ 346,577k 346,673k p=0.688 n=6
Parse Time 2.61s (± 1.66%) 2.60s (± 0.86%) ~ 2.58s 2.63s p=0.872 n=6
Bind Time 1.01s (± 0.75%) 1.01s (± 1.25%) ~ 0.99s 1.03s p=0.788 n=6
Check Time 7.15s (± 0.27%) 7.13s (± 0.66%) ~ 7.06s 7.18s p=0.375 n=6
Emit Time 4.25s (± 0.46%) 4.24s (± 0.73%) ~ 4.21s 4.28s p=0.685 n=6
Total Time 15.01s (± 0.40%) 14.98s (± 0.12%) ~ 14.96s 15.01s p=0.469 n=6
TFS - node (v18.10.0, x64)
Memory used 300,613k (± 0.01%) 300,622k (± 0.00%) ~ 300,602k 300,635k p=0.261 n=6
Parse Time 2.06s (± 1.70%) 2.08s (± 0.94%) ~ 2.06s 2.11s p=0.373 n=6
Bind Time 1.14s (± 0.96%) 1.14s (± 1.29%) ~ 1.13s 1.17s p=1.000 n=6
Check Time 6.62s (± 0.53%) 6.65s (± 1.52%) ~ 6.57s 6.84s p=0.872 n=6
Emit Time 3.89s (± 0.60%) 3.89s (± 1.63%) ~ 3.82s 4.01s p=0.740 n=6
Total Time 13.71s (± 0.60%) 13.77s (± 0.92%) ~ 13.65s 13.97s p=0.470 n=6
material-ui - node (v18.10.0, x64)
Memory used 481,732k (± 0.01%) 481,778k (± 0.01%) ~ 481,702k 481,839k p=0.092 n=6
Parse Time 3.13s (± 1.35%) 3.12s (± 1.08%) ~ 3.08s 3.16s p=0.872 n=6
Bind Time 0.91s (± 1.28%) 0.91s (± 0.89%) ~ 0.90s 0.92s p=0.738 n=6
Check Time 16.81s (± 0.79%) 16.77s (± 0.27%) ~ 16.71s 16.84s p=0.873 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 20.85s (± 0.78%) 20.81s (± 0.28%) ~ 20.75s 20.92s p=1.000 n=6
xstate - node (v18.10.0, x64)
Memory used 563,032k (± 0.03%) 563,160k (± 0.03%) ~ 562,934k 563,400k p=0.230 n=6
Parse Time 3.85s (± 0.56%) 3.84s (± 0.61%) ~ 3.80s 3.87s p=0.685 n=6
Bind Time 1.64s (± 0.60%) 1.64s (± 0.92%) ~ 1.61s 1.65s p=0.934 n=6
Check Time 2.82s (± 1.26%) 2.82s (± 0.41%) ~ 2.80s 2.83s p=1.000 n=6
Emit Time 0.08s (± 0.00%) 0.08s (± 0.00%) ~ 0.08s 0.08s p=1.000 n=6
Total Time 8.38s (± 0.68%) 8.38s (± 0.27%) ~ 8.35s 8.40s p=1.000 n=6
Angular - node (v16.17.1, x64)
Memory used 365,511k (± 0.01%) 365,519k (± 0.01%) ~ 365,452k 365,578k p=0.810 n=6
Parse Time 3.58s (± 0.51%) 3.57s (± 0.49%) ~ 3.56s 3.60s p=0.557 n=6
Bind Time 1.18s (± 0.54%) 1.18s (± 0.44%) ~ 1.17s 1.18s p=0.386 n=6
Check Time 9.62s (± 0.24%) 9.59s (± 0.51%) ~ 9.54s 9.68s p=0.198 n=6
Emit Time 7.96s (± 0.39%) 7.91s (± 0.84%) ~ 7.84s 8.03s p=0.128 n=6
Total Time 22.34s (± 0.21%) 22.25s (± 0.44%) ~ 22.15s 22.44s p=0.065 n=6
Compiler-Unions - node (v16.17.1, x64)
Memory used 193,530k (± 0.70%) 193,426k (± 0.67%) ~ 192,848k 196,056k p=0.173 n=6
Parse Time 1.61s (± 1.52%) 1.61s (± 0.72%) ~ 1.60s 1.63s p=1.000 n=6
Bind Time 0.83s (± 0.49%) 0.82s (± 0.63%) ~ 0.82s 0.83s p=0.112 n=6
Check Time 10.25s (± 0.74%) 10.20s (± 0.59%) ~ 10.12s 10.29s p=0.261 n=6
Emit Time 3.01s (± 0.44%) 3.00s (± 1.37%) ~ 2.97s 3.07s p=0.742 n=6
Total Time 15.70s (± 0.59%) 15.63s (± 0.55%) ~ 15.51s 15.74s p=0.295 n=6
Monaco - node (v16.17.1, x64)
Memory used 345,883k (± 0.01%) 345,878k (± 0.00%) ~ 345,859k 345,892k p=1.000 n=6
Parse Time 2.73s (± 0.68%) 2.72s (± 0.28%) ~ 2.71s 2.73s p=0.280 n=6
Bind Time 1.09s (± 0.37%) 1.08s (± 0.50%) ~ 1.08s 1.09s p=0.282 n=6
Check Time 7.86s (± 0.45%) 7.83s (± 0.39%) ~ 7.80s 7.88s p=0.225 n=6
Emit Time 4.46s (± 0.79%) 4.46s (± 0.87%) ~ 4.41s 4.52s p=0.872 n=6
Total Time 16.14s (± 0.35%) 16.10s (± 0.45%) ~ 16.04s 16.21s p=0.227 n=6
TFS - node (v16.17.1, x64)
Memory used 299,955k (± 0.01%) 299,969k (± 0.01%) ~ 299,943k 299,994k p=0.378 n=6
Parse Time 2.16s (± 0.56%) 2.18s (± 1.12%) ~ 2.15s 2.21s p=0.567 n=6
Bind Time 1.24s (± 0.68%) 1.24s (± 0.83%) ~ 1.23s 1.26s p=0.149 n=6
Check Time 7.26s (± 0.50%) 7.28s (± 0.42%) ~ 7.24s 7.32s p=0.871 n=6
Emit Time 4.33s (± 0.41%) 4.33s (± 0.64%) ~ 4.29s 4.36s p=0.934 n=6
Total Time 15.00s (± 0.26%) 15.03s (± 0.44%) ~ 14.94s 15.13s p=0.373 n=6
material-ui - node (v16.17.1, x64)
Memory used 481,013k (± 0.01%) 480,990k (± 0.00%) ~ 480,972k 481,006k p=0.261 n=6
Parse Time 3.28s (± 0.49%) 3.27s (± 0.50%) ~ 3.25s 3.29s p=0.737 n=6
Bind Time 0.94s (± 0.43%) 0.95s (± 1.09%) ~ 0.94s 0.96s p=0.461 n=6
Check Time 17.84s (± 0.37%) 17.89s (± 1.02%) ~ 17.74s 18.17s p=0.810 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 22.07s (± 0.33%) 22.12s (± 0.85%) ~ 21.96s 22.39s p=0.748 n=6
xstate - node (v16.17.1, x64)
Memory used 560,613k (± 0.01%) 560,613k (± 0.02%) ~ 560,466k 560,770k p=1.000 n=6
Parse Time 4.01s (± 0.58%) 4.00s (± 0.72%) ~ 3.98s 4.05s p=0.629 n=6
Bind Time 1.77s (± 0.29%) 1.77s (± 0.80%) ~ 1.75s 1.79s p=0.667 n=6
Check Time 3.05s (± 0.34%) 3.06s (± 0.79%) ~ 3.03s 3.09s p=0.743 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.33%) 8.91s (± 0.36%) ~ 8.88s 8.96s p=0.573 n=6
Angular - node (v14.21.3, x64)
Memory used 359,508k (± 0.00%) 359,547k (± 0.01%) +40k (+ 0.01%) 359,513k 359,611k p=0.031 n=6
Parse Time 3.70s (± 0.40%) 3.67s (± 0.32%) -0.03s (- 0.81%) 3.66s 3.69s p=0.012 n=6
Bind Time 1.22s (± 0.33%) 1.22s (± 0.67%) ~ 1.21s 1.23s p=0.584 n=6
Check Time 10.05s (± 0.49%) 9.99s (± 0.55%) ~ 9.93s 10.08s p=0.126 n=6
Emit Time 8.37s (± 1.03%) 8.29s (± 0.80%) ~ 8.23s 8.38s p=0.199 n=6
Total Time 23.33s (± 0.53%) 23.17s (± 0.42%) ~ 23.06s 23.33s p=0.054 n=6
Compiler-Unions - node (v14.21.3, x64)
Memory used 188,282k (± 0.01%) 188,276k (± 0.01%) ~ 188,248k 188,306k p=0.630 n=6
Parse Time 1.62s (± 0.96%) 1.62s (± 0.65%) ~ 1.60s 1.63s p=0.621 n=6
Bind Time 0.85s (± 0.00%) 0.85s (± 0.89%) ~ 0.84s 0.86s p=0.598 n=6
Check Time 10.35s (± 0.31%) 10.29s (± 0.43%) -0.06s (- 0.60%) 10.25s 10.37s p=0.045 n=6
Emit Time 3.15s (± 0.97%) 3.12s (± 0.39%) ~ 3.10s 3.13s p=0.053 n=6
Total Time 15.97s (± 0.37%) 15.87s (± 0.32%) -0.10s (- 0.65%) 15.83s 15.97s p=0.024 n=6
Monaco - node (v14.21.3, x64)
Memory used 341,039k (± 0.00%) 341,040k (± 0.00%) ~ 341,022k 341,065k p=0.936 n=6
Parse Time 2.83s (± 0.89%) 2.80s (± 0.77%) ~ 2.78s 2.84s p=0.164 n=6
Bind Time 1.12s (± 0.75%) 1.11s (± 0.46%) ~ 1.11s 1.12s p=0.923 n=6
Check Time 8.20s (± 0.26%) 8.19s (± 0.54%) ~ 8.14s 8.26s p=0.570 n=6
Emit Time 4.68s (± 0.52%) 4.70s (± 0.63%) ~ 4.67s 4.75s p=0.289 n=6
Total Time 16.82s (± 0.29%) 16.81s (± 0.24%) ~ 16.74s 16.86s p=1.000 n=6
TFS - node (v14.21.3, x64)
Memory used 295,133k (± 0.00%) 295,139k (± 0.00%) ~ 295,130k 295,159k p=0.810 n=6
Parse Time 2.42s (± 0.77%) 2.42s (± 0.89%) ~ 2.39s 2.45s p=1.000 n=6
Bind Time 1.07s (± 0.84%) 1.07s (± 0.70%) ~ 1.06s 1.08s p=0.798 n=6
Check Time 7.59s (± 0.46%) 7.59s (± 0.47%) ~ 7.54s 7.64s p=1.000 n=6
Emit Time 4.35s (± 1.16%) 4.33s (± 0.83%) ~ 4.28s 4.38s p=0.327 n=6
Total Time 15.43s (± 0.52%) 15.41s (± 0.40%) ~ 15.30s 15.48s p=0.630 n=6
material-ui - node (v14.21.3, x64)
Memory used 476,590k (± 0.00%) 476,556k (± 0.01%) -34k (- 0.01%) 476,524k 476,585k p=0.020 n=6
Parse Time 3.36s (± 0.55%) 3.35s (± 0.52%) ~ 3.33s 3.38s p=0.743 n=6
Bind Time 1.01s (± 0.40%) 1.01s (± 0.40%) ~ 1.01s 1.02s p=1.000 n=6
Check Time 18.77s (± 0.73%) 18.75s (± 0.57%) ~ 18.61s 18.93s p=0.575 n=6
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) ~ 0.00s 0.00s p=1.000 n=6
Total Time 23.14s (± 0.67%) 23.12s (± 0.41%) ~ 23.00s 23.27s p=0.471 n=6
xstate - node (v14.21.3, x64)
Memory used 549,644k (± 0.00%) 549,654k (± 0.00%) ~ 549,642k 549,663k p=0.109 n=6
Parse Time 4.24s (± 0.49%) 4.27s (± 0.72%) ~ 4.22s 4.30s p=0.092 n=6
Bind Time 1.68s (± 0.48%) 1.69s (± 0.87%) ~ 1.67s 1.71s p=0.677 n=6
Check Time 3.20s (± 0.79%) 3.19s (± 0.61%) ~ 3.16s 3.21s p=0.466 n=6
Emit Time 0.09s (± 0.00%) 0.09s (± 0.00%) ~ 0.09s 0.09s p=1.000 n=6
Total Time 9.22s (± 0.24%) 9.24s (± 0.48%) ~ 9.16s 9.28s p=0.170 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 54538 6
Baseline main 6

TSServer

Comparison Report - main..54538
Metric main 54538 Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,567ms (± 0.97%) 2,553ms (± 0.53%) ~ 2,530ms 2,566ms p=0.423 n=6
Req 2 - geterr 5,535ms (± 1.56%) 5,526ms (± 1.65%) ~ 5,349ms 5,602ms p=0.810 n=6
Req 3 - references 338ms (± 0.76%) 338ms (± 0.67%) ~ 335ms 341ms p=0.935 n=6
Req 4 - navto 287ms (± 0.57%) 287ms (± 0.38%) ~ 286ms 289ms p=0.741 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 84ms (± 0.89%) 85ms (± 1.05%) ~ 84ms 86ms p=0.149 n=6
CompilerTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 2,656ms (± 0.85%) 2,660ms (± 0.34%) ~ 2,649ms 2,675ms p=1.000 n=6
Req 2 - geterr 4,247ms (± 2.83%) 4,312ms (± 0.49%) ~ 4,284ms 4,347ms p=0.936 n=6
Req 3 - references 349ms (± 1.31%) 351ms (± 0.58%) ~ 349ms 355ms p=0.418 n=6
Req 4 - navto 292ms (± 0.73%) 292ms (± 0.85%) ~ 289ms 295ms p=0.934 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 (± 4.84%) 64ms (± 4.31%) ~ 62ms 69ms p=0.452 n=6
xstateTSServer - node (v18.10.0, x64)
Req 1 - updateOpen 3,101ms (± 0.55%) 3,104ms (± 0.71%) ~ 3,070ms 3,135ms p=0.873 n=6
Req 2 - geterr 1,574ms (± 1.53%) 1,575ms (± 1.28%) ~ 1,551ms 1,597ms p=1.000 n=6
Req 3 - references 113ms (± 2.19%) 113ms (± 1.64%) ~ 111ms 116ms p=0.871 n=6
Req 4 - navto 361ms (± 0.72%) 360ms (± 0.57%) ~ 357ms 362ms p=0.514 n=6
Req 5 - completionInfo count 2,864 (± 0.00%) 2,864 (± 0.00%) ~ 2,864 2,864 p=1.000 n=6
Req 5 - completionInfo 378ms (± 3.36%) 380ms (± 2.46%) ~ 366ms 387ms p=0.470 n=6
Compiler-UnionsTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,683ms (± 0.73%) 2,688ms (± 1.20%) ~ 2,669ms 2,753ms p=0.810 n=6
Req 2 - geterr 6,059ms (± 0.45%) 5,990ms (± 1.71%) ~ 5,789ms 6,060ms p=0.128 n=6
Req 3 - references 352ms (± 0.43%) 352ms (± 0.51%) ~ 349ms 354ms p=0.869 n=6
Req 4 - navto 288ms (± 1.02%) 289ms (± 1.65%) ~ 284ms 295ms p=0.625 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 (± 5.77%) 88ms (± 8.31%) ~ 74ms 94ms p=0.334 n=6
CompilerTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 2,858ms (± 0.47%) 2,839ms (± 0.43%) -19ms (- 0.66%) 2,819ms 2,855ms p=0.037 n=6
Req 2 - geterr 4,687ms (± 0.17%) 4,683ms (± 0.41%) ~ 4,656ms 4,710ms p=0.629 n=6
Req 3 - references 364ms (± 0.58%) 366ms (± 0.50%) ~ 364ms 369ms p=0.210 n=6
Req 4 - navto 289ms (± 0.86%) 289ms (± 1.06%) ~ 285ms 292ms p=0.418 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 67ms (± 1.12%) 67ms (± 1.12%) ~ 66ms 68ms p=1.000 n=6
xstateTSServer - node (v16.17.1, x64)
Req 1 - updateOpen 3,229ms (± 0.69%) 3,235ms (± 0.48%) ~ 3,215ms 3,254ms p=0.748 n=6
Req 2 - geterr 1,745ms (± 1.14%) 1,747ms (± 1.13%) ~ 1,728ms 1,779ms p=0.809 n=6
Req 3 - references 126ms (± 7.24%) 123ms (± 0.51%) ~ 122ms 124ms p=0.209 n=6
Req 4 - navto 344ms (± 0.89%) 343ms (± 0.63%) ~ 340ms 345ms p=0.566 n=6
Req 5 - completionInfo count 2,864 (± 0.00%) 2,864 (± 0.00%) ~ 2,864 2,864 p=1.000 n=6
Req 5 - completionInfo 415ms (± 1.88%) 410ms (± 2.15%) ~ 402ms 421ms p=0.229 n=6
Compiler-UnionsTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,806ms (± 0.50%) 2,799ms (± 0.42%) ~ 2,782ms 2,816ms p=0.295 n=6
Req 2 - geterr 6,196ms (± 0.45%) 6,219ms (± 0.60%) ~ 6,182ms 6,280ms p=0.810 n=6
Req 3 - references 365ms (± 1.36%) 362ms (± 0.62%) ~ 358ms 364ms p=0.163 n=6
Req 4 - navto 290ms (± 0.47%) 288ms (± 0.52%) ~ 287ms 290ms p=0.215 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 (± 4.19%) 102ms (± 2.09%) ~ 99ms 104ms p=0.742 n=6
CompilerTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 2,985ms (± 0.70%) 2,984ms (± 0.75%) ~ 2,966ms 3,022ms p=0.936 n=6
Req 2 - geterr 4,575ms (± 0.35%) 4,530ms (± 0.33%) -45ms (- 0.99%) 4,503ms 4,545ms p=0.005 n=6
Req 3 - references 376ms (± 0.22%) 372ms (± 0.46%) -4ms (- 1.11%) 369ms 374ms p=0.005 n=6
Req 4 - navto 299ms (± 0.44%) 299ms (± 0.49%) ~ 296ms 300ms 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 (± 1.07%) 76ms (± 0.54%) ~ 76ms 77ms p=0.584 n=6
xstateTSServer - node (v14.21.3, x64)
Req 1 - updateOpen 3,488ms (± 0.49%) 3,500ms (± 0.42%) ~ 3,481ms 3,521ms p=0.336 n=6
Req 2 - geterr 1,855ms (± 0.50%) 1,838ms (± 0.53%) -17ms (- 0.89%) 1,829ms 1,856ms p=0.024 n=6
Req 3 - references 150ms (± 6.91%) 149ms (± 9.28%) ~ 131ms 161ms p=1.000 n=6
Req 4 - navto 406ms (± 1.41%) 402ms (± 1.47%) ~ 397ms 413ms p=0.375 n=6
Req 5 - completionInfo count 2,864 (± 0.00%) 2,864 (± 0.00%) ~ 2,864 2,864 p=1.000 n=6
Req 5 - completionInfo 439ms (± 1.06%) 434ms (± 2.58%) ~ 424ms 450ms p=0.298 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 54538 6
Baseline main 6

Startup

Comparison Report - main..54538
Metric main 54538 Delta Best Worst p-value
tsc-startup - node (v16.17.1, x64)
Execution time 142.03ms (± 0.23%) 141.63ms (± 0.19%) -0.41ms (- 0.29%) 140.94ms 146.23ms p=0.000 n=600
tsserver-startup - node (v16.17.1, x64)
Execution time 221.91ms (± 0.32%) 220.81ms (± 0.16%) -1.10ms (- 0.49%) 219.95ms 224.96ms p=0.000 n=600
tsserverlibrary-startup - node (v16.17.1, x64)
Execution time 224.43ms (± 0.37%) 222.23ms (± 0.16%) -2.19ms (- 0.98%) 221.34ms 229.51ms p=0.000 n=600
typescript-startup - node (v16.17.1, x64)
Execution time 204.39ms (± 0.19%) 204.14ms (± 0.15%) -0.25ms (- 0.12%) 203.28ms 207.66ms 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 54538 6
Baseline main 6

Developer Information:

Download Benchmark

@weswigham weswigham marked this pull request as ready for review June 5, 2023 20:41
@weswigham
Copy link
Member Author

weswigham commented Jun 5, 2023

Yep no change to material-ui, but tiny gains in Compiler-Unions! 🙂

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.

This looks good to me.

Should we backport this fix instead of #54507 to 5.1? Or does that feel too unsafe for a bugfix? (Mainly, are there actually performance regressions in 5.1 due to the previous optimization sometimes being too conservative?)

@weswigham
Copy link
Member Author

@typescript-bot test this
@typescript-bot run dt
@typescript-bot test top100

Juuuust in case

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 5, 2023

Heya @weswigham, I've started to run the diff-based top-repos suite on this PR at 7698260. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 5, 2023

Heya @weswigham, I've started to run the extended test suite on this PR at 7698260. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 5, 2023

Heya @weswigham, I've started to run the parallelized Definitely Typed test suite on this PR at 7698260. You can monitor the build here.

Update: The results are in!

@weswigham
Copy link
Member Author

Mainly, are there actually performance regressions in 5.1 due to the previous optimization sometimes being too conservative?

Probably, but the effect is small, as you can see.

@typescript-bot
Copy link
Collaborator

Heya @weswigham, I've run the RWC suite on this PR - assuming you're on the TS core team, you can view the resulting diff here.

@typescript-bot
Copy link
Collaborator

@weswigham Here are the results of running the top-repos suite comparing main and refs/pull/54538/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

Hey @weswigham, it looks like the DT test run failed. Please check the log for more details.
You can check the log here.

@Jolg42
Copy link

Jolg42 commented Jun 14, 2023

@weswigham @jakebailey I wanted to mention here that it could be beneficial to backport this to 5.1, see for more details the following issue #54549 (comment)

I'm trying to connect the dots, I hope this helps
Thanks for the good work 💚

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