Skip to content

Defer distributing index over generic object types #50540

New issue

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

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

Already on GitHub? Sign in to your account

Merged

Conversation

Andarist
Copy link
Contributor

Fixes #50539

cc @ahejlsberg , the shouldDeferIndexType check has been introduced based on the changes in this PR: https://github.com/microsoft/TypeScript/pull/49696/files

@DanielRosenwasser
Copy link
Member

@typescript-bot test this
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 30, 2022

Heya @DanielRosenwasser, I've started to run the diff-based user code test suite on this PR at 00e3926. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 30, 2022

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 30, 2022

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 30, 2022

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

@typescript-bot
Copy link
Collaborator

@DanielRosenwasser Here are the results of running the user test suite comparing main and refs/pull/50540/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

Heya @DanielRosenwasser, 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

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

Here they are:

Compiler

Comparison Report - main..50540
Metric main 50540 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 363,228k (± 0.02%) 363,130k (± 0.02%) -98k (- 0.03%) 362,992k 363,310k
Parse Time 2.09s (± 0.75%) 2.07s (± 0.31%) -0.02s (- 0.91%) 2.06s 2.09s
Bind Time 0.79s (± 0.96%) 0.79s (± 0.63%) 0.00s ( 0.00%) 0.78s 0.80s
Check Time 6.18s (± 0.42%) 6.16s (± 0.57%) -0.03s (- 0.44%) 6.09s 6.24s
Emit Time 6.01s (± 0.62%) 5.99s (± 1.22%) -0.03s (- 0.45%) 5.89s 6.20s
Total Time 15.08s (± 0.34%) 15.00s (± 0.65%) -0.08s (- 0.50%) 14.86s 15.26s
Compiler-Unions - node (v10.16.3, x64)
Memory used 206,077k (± 0.03%) 206,113k (± 0.03%) +36k (+ 0.02%) 205,970k 206,238k
Parse Time 0.83s (± 1.07%) 0.83s (± 1.18%) -0.00s (- 0.36%) 0.81s 0.85s
Bind Time 0.47s (± 1.88%) 0.47s (± 2.12%) -0.01s (- 1.05%) 0.45s 0.49s
Check Time 8.41s (± 0.57%) 8.41s (± 0.54%) -0.01s (- 0.06%) 8.33s 8.49s
Emit Time 2.47s (± 1.10%) 2.48s (± 1.21%) +0.01s (+ 0.41%) 2.41s 2.53s
Total Time 12.19s (± 0.51%) 12.19s (± 0.41%) -0.00s (- 0.00%) 12.07s 12.34s
Monaco - node (v10.16.3, x64)
Memory used 344,700k (± 0.03%) 344,656k (± 0.02%) -45k (- 0.01%) 344,531k 344,775k
Parse Time 1.61s (± 0.59%) 1.60s (± 0.57%) -0.01s (- 0.50%) 1.59s 1.63s
Bind Time 0.70s (± 0.53%) 0.70s (± 0.52%) +0.01s (+ 1.29%) 0.70s 0.71s
Check Time 6.23s (± 0.49%) 6.22s (± 0.50%) -0.01s (- 0.22%) 6.16s 6.29s
Emit Time 3.27s (± 1.04%) 3.26s (± 0.84%) -0.01s (- 0.18%) 3.21s 3.32s
Total Time 11.80s (± 0.38%) 11.78s (± 0.23%) -0.02s (- 0.17%) 11.73s 11.85s
TFS - node (v10.16.3, x64)
Memory used 305,873k (± 0.03%) 305,877k (± 0.02%) +4k (+ 0.00%) 305,732k 306,054k
Parse Time 1.29s (± 0.94%) 1.28s (± 0.65%) -0.00s (- 0.08%) 1.27s 1.31s
Bind Time 0.67s (± 0.86%) 0.67s (± 0.60%) -0.00s (- 0.59%) 0.66s 0.68s
Check Time 5.53s (± 0.49%) 5.51s (± 0.47%) -0.02s (- 0.40%) 5.44s 5.54s
Emit Time 3.40s (± 0.61%) 3.39s (± 1.32%) -0.01s (- 0.26%) 3.31s 3.49s
Total Time 10.89s (± 0.32%) 10.85s (± 0.58%) -0.04s (- 0.35%) 10.69s 10.96s
material-ui - node (v10.16.3, x64)
Memory used 460,758k (± 0.01%) 460,730k (± 0.01%) -29k (- 0.01%) 460,610k 460,819k
Parse Time 1.81s (± 0.64%) 1.83s (± 0.65%) +0.01s (+ 0.77%) 1.80s 1.85s
Bind Time 0.58s (± 1.66%) 0.57s (± 1.76%) -0.01s (- 1.03%) 0.56s 0.60s
Check Time 15.65s (± 0.38%) 15.73s (± 0.87%) +0.08s (+ 0.50%) 15.50s 16.08s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 18.05s (± 0.36%) 18.13s (± 0.76%) +0.08s (+ 0.46%) 17.89s 18.48s
xstate - node (v10.16.3, x64)
Memory used 584,554k (± 0.02%) 587,765k (± 1.24%) +3,211k (+ 0.55%) 584,388k 617,313k
Parse Time 2.59s (± 0.46%) 2.61s (± 0.39%) +0.02s (+ 0.62%) 2.59s 2.63s
Bind Time 0.91s (± 0.65%) 0.92s (± 0.41%) +0.00s (+ 0.11%) 0.91s 0.92s
Check Time 1.62s (± 0.54%) 1.62s (± 0.77%) +0.00s (+ 0.19%) 1.60s 1.65s
Emit Time 0.07s (± 0.00%) 0.07s (± 4.66%) +0.00s (+ 4.29%) 0.07s 0.08s
Total Time 5.20s (± 0.38%) 5.21s (± 0.38%) +0.01s (+ 0.25%) 5.17s 5.25s
Angular - node (v12.1.0, x64)
Memory used 340,722k (± 0.01%) 340,660k (± 0.02%) -62k (- 0.02%) 340,517k 340,790k
Parse Time 2.07s (± 0.39%) 2.09s (± 0.56%) +0.01s (+ 0.63%) 2.06s 2.12s
Bind Time 0.77s (± 0.52%) 0.77s (± 0.75%) +0.00s (+ 0.26%) 0.76s 0.78s
Check Time 5.85s (± 0.87%) 5.82s (± 0.38%) -0.02s (- 0.43%) 5.75s 5.86s
Emit Time 6.19s (± 0.63%) 6.21s (± 0.82%) +0.03s (+ 0.49%) 6.12s 6.34s
Total Time 14.87s (± 0.58%) 14.89s (± 0.42%) +0.02s (+ 0.13%) 14.73s 15.00s
Compiler-Unions - node (v12.1.0, x64)
Memory used 194,052k (± 0.03%) 193,517k (± 0.32%) -535k (- 0.28%) 191,276k 194,194k
Parse Time 0.82s (± 1.01%) 0.82s (± 0.57%) -0.00s (- 0.61%) 0.81s 0.83s
Bind Time 0.47s (± 1.01%) 0.47s (± 0.48%) -0.00s (- 0.85%) 0.46s 0.47s
Check Time 6.65s (± 0.44%) 6.64s (± 0.64%) -0.01s (- 0.15%) 6.55s 6.72s
Emit Time 2.45s (± 1.11%) 2.47s (± 0.83%) +0.01s (+ 0.57%) 2.43s 2.52s
Total Time 10.40s (± 0.43%) 10.39s (± 0.46%) -0.00s (- 0.02%) 10.29s 10.48s
Monaco - node (v12.1.0, x64)
Memory used 327,605k (± 0.06%) 327,666k (± 0.02%) +62k (+ 0.02%) 327,556k 327,844k
Parse Time 1.57s (± 0.71%) 1.57s (± 0.68%) +0.01s (+ 0.38%) 1.55s 1.59s
Bind Time 0.69s (± 0.72%) 0.69s (± 0.86%) -0.00s (- 0.14%) 0.68s 0.71s
Check Time 5.83s (± 0.46%) 5.83s (± 0.51%) +0.00s (+ 0.09%) 5.79s 5.92s
Emit Time 3.31s (± 0.76%) 3.30s (± 1.28%) -0.01s (- 0.24%) 3.24s 3.44s
Total Time 11.40s (± 0.33%) 11.40s (± 0.43%) +0.01s (+ 0.04%) 11.32s 11.53s
TFS - node (v12.1.0, x64)
Memory used 290,506k (± 0.01%) 290,482k (± 0.02%) -24k (- 0.01%) 290,329k 290,610k
Parse Time 1.28s (± 0.64%) 1.29s (± 0.90%) +0.00s (+ 0.16%) 1.26s 1.31s
Bind Time 0.67s (± 0.99%) 0.67s (± 1.05%) -0.00s (- 0.59%) 0.66s 0.69s
Check Time 5.37s (± 0.69%) 5.37s (± 0.54%) +0.01s (+ 0.11%) 5.31s 5.46s
Emit Time 3.48s (± 0.71%) 3.46s (± 0.63%) -0.02s (- 0.55%) 3.43s 3.53s
Total Time 10.81s (± 0.50%) 10.79s (± 0.23%) -0.02s (- 0.15%) 10.74s 10.85s
material-ui - node (v12.1.0, x64)
Memory used 439,760k (± 0.08%) 439,985k (± 0.01%) +225k (+ 0.05%) 439,898k 440,118k
Parse Time 1.81s (± 0.58%) 1.81s (± 0.54%) -0.00s (- 0.11%) 1.79s 1.84s
Bind Time 0.55s (± 0.95%) 0.55s (± 0.73%) +0.00s (+ 0.36%) 0.54s 0.56s
Check Time 12.77s (± 0.90%) 12.72s (± 0.62%) -0.06s (- 0.45%) 12.57s 12.95s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.13s (± 0.79%) 15.08s (± 0.52%) -0.06s (- 0.38%) 14.91s 15.30s
xstate - node (v12.1.0, x64)
Memory used 549,659k (± 0.02%) 552,900k (± 1.30%) +3,241k (+ 0.59%) 549,542k 581,919k
Parse Time 2.53s (± 0.39%) 2.53s (± 0.53%) -0.00s (- 0.04%) 2.51s 2.56s
Bind Time 0.89s (± 0.65%) 0.89s (± 0.65%) +0.00s (+ 0.34%) 0.88s 0.90s
Check Time 1.49s (± 0.65%) 1.50s (± 0.55%) +0.01s (+ 0.40%) 1.48s 1.52s
Emit Time 0.07s (± 3.14%) 0.07s (± 0.00%) -0.00s (- 1.41%) 0.07s 0.07s
Total Time 4.98s (± 0.26%) 4.99s (± 0.30%) +0.00s (+ 0.08%) 4.96s 5.03s
Angular - node (v14.15.1, x64)
Memory used 338,741k (± 0.01%) 338,722k (± 0.01%) -19k (- 0.01%) 338,650k 338,759k
Parse Time 2.06s (± 0.61%) 2.06s (± 0.65%) +0.00s (+ 0.24%) 2.03s 2.08s
Bind Time 0.79s (± 0.51%) 0.79s (± 0.56%) +0.00s (+ 0.38%) 0.78s 0.80s
Check Time 5.81s (± 0.40%) 5.85s (± 0.30%) +0.03s (+ 0.57%) 5.80s 5.88s
Emit Time 6.16s (± 0.56%) 6.20s (± 0.62%) +0.04s (+ 0.68%) 6.13s 6.28s
Total Time 14.82s (± 0.32%) 14.90s (± 0.30%) +0.08s (+ 0.52%) 14.81s 15.03s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,632k (± 0.01%) 192,634k (± 0.02%) +2k (+ 0.00%) 192,564k 192,703k
Parse Time 0.85s (± 0.55%) 0.85s (± 0.68%) -0.00s (- 0.00%) 0.84s 0.86s
Bind Time 0.49s (± 0.98%) 0.49s (± 1.01%) -0.00s (- 0.21%) 0.48s 0.50s
Check Time 6.64s (± 0.42%) 6.66s (± 0.37%) +0.02s (+ 0.32%) 6.62s 6.70s
Emit Time 2.41s (± 0.89%) 2.41s (± 0.65%) 0.00s ( 0.00%) 2.37s 2.44s
Total Time 10.38s (± 0.44%) 10.40s (± 0.32%) +0.02s (+ 0.17%) 10.31s 10.47s
Monaco - node (v14.15.1, x64)
Memory used 326,514k (± 0.00%) 326,533k (± 0.01%) +19k (+ 0.01%) 326,482k 326,598k
Parse Time 1.56s (± 0.53%) 1.57s (± 0.60%) +0.01s (+ 0.38%) 1.55s 1.59s
Bind Time 0.72s (± 0.69%) 0.72s (± 0.77%) -0.01s (- 0.97%) 0.71s 0.73s
Check Time 5.71s (± 0.35%) 5.71s (± 0.40%) -0.00s (- 0.02%) 5.66s 5.76s
Emit Time 3.32s (± 1.35%) 3.30s (± 0.51%) -0.02s (- 0.60%) 3.26s 3.35s
Total Time 11.32s (± 0.37%) 11.30s (± 0.26%) -0.02s (- 0.20%) 11.24s 11.35s
TFS - node (v14.15.1, x64)
Memory used 289,629k (± 0.01%) 289,645k (± 0.01%) +15k (+ 0.01%) 289,604k 289,672k
Parse Time 1.29s (± 0.52%) 1.30s (± 0.56%) +0.00s (+ 0.39%) 1.28s 1.31s
Bind Time 0.79s (± 0.59%) 0.78s (± 1.46%) -0.01s (- 1.01%) 0.74s 0.80s
Check Time 5.33s (± 0.31%) 5.33s (± 0.30%) -0.00s (- 0.02%) 5.30s 5.37s
Emit Time 3.55s (± 0.69%) 3.59s (± 0.62%) +0.04s (+ 0.99%) 3.54s 3.64s
Total Time 10.97s (± 0.26%) 11.00s (± 0.23%) +0.03s (+ 0.25%) 10.94s 11.04s
material-ui - node (v14.15.1, x64)
Memory used 438,194k (± 0.00%) 438,095k (± 0.06%) -99k (- 0.02%) 437,042k 438,266k
Parse Time 1.86s (± 0.45%) 1.86s (± 0.80%) +0.01s (+ 0.27%) 1.83s 1.90s
Bind Time 0.58s (± 0.77%) 0.58s (± 0.69%) +0.00s (+ 0.17%) 0.57s 0.59s
Check Time 12.83s (± 0.66%) 12.86s (± 0.96%) +0.03s (+ 0.22%) 12.69s 13.30s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.28s (± 0.53%) 15.31s (± 0.89%) +0.03s (+ 0.21%) 15.11s 15.79s
xstate - node (v14.15.1, x64)
Memory used 547,398k (± 0.00%) 547,406k (± 0.00%) +8k (+ 0.00%) 547,374k 547,429k
Parse Time 2.60s (± 0.56%) 2.59s (± 0.56%) -0.00s (- 0.04%) 2.57s 2.63s
Bind Time 0.97s (± 0.87%) 0.97s (± 2.04%) +0.00s (+ 0.21%) 0.96s 1.05s
Check Time 1.53s (± 0.67%) 1.53s (± 0.38%) +0.00s (+ 0.13%) 1.52s 1.54s
Emit Time 0.07s (± 4.66%) 0.07s (± 0.00%) 🟩-0.00s (- 4.11%) 0.07s 0.07s
Total Time 5.17s (± 0.42%) 5.18s (± 0.64%) +0.00s (+ 0.08%) 5.13s 5.30s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50540 10
Baseline main 10

TSServer

Comparison Report - main..50540
Metric main 50540 Delta Best Worst
Compiler-UnionsTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,405ms (± 0.42%) 1,399ms (± 0.55%) -7ms (- 0.48%) 1,379ms 1,414ms
Req 2 - geterr 4,131ms (± 0.75%) 4,093ms (± 0.80%) -38ms (- 0.93%) 4,032ms 4,171ms
Req 3 - references 232ms (± 0.71%) 230ms (± 0.98%) -2ms (- 0.91%) 226ms 236ms
Req 4 - navto 172ms (± 0.93%) 171ms (± 0.85%) -2ms (- 1.04%) 168ms 174ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 95ms (± 2.89%) 95ms (± 3.07%) -0ms (- 0.42%) 88ms 100ms
CompilerTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,496ms (± 0.53%) 1,501ms (± 0.47%) +4ms (+ 0.29%) 1,479ms 1,515ms
Req 2 - geterr 2,249ms (± 0.37%) 2,257ms (± 0.47%) +7ms (+ 0.32%) 2,239ms 2,278ms
Req 3 - references 242ms (± 0.61%) 241ms (± 0.47%) -1ms (- 0.25%) 238ms 243ms
Req 4 - navto 184ms (± 0.63%) 186ms (± 0.79%) +1ms (+ 0.60%) 182ms 189ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 69ms (± 1.37%) 69ms (± 2.33%) -0ms (- 0.15%) 64ms 72ms
xstateTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 2,079ms (± 0.41%) 2,085ms (± 0.44%) +5ms (+ 0.25%) 2,061ms 2,097ms
Req 2 - geterr 804ms (± 0.52%) 799ms (± 0.87%) -5ms (- 0.65%) 784ms 813ms
Req 3 - references 100ms (± 1.17%) 101ms (± 1.08%) +1ms (+ 1.31%) 99ms 104ms
Req 4 - navto 235ms (± 1.62%) 232ms (± 0.68%) -3ms (- 1.28%) 226ms 234ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 280ms (± 0.99%) 279ms (± 0.90%) -1ms (- 0.50%) 274ms 284ms
Compiler-UnionsTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,404ms (± 0.44%) 1,407ms (± 0.38%) +3ms (+ 0.18%) 1,393ms 1,419ms
Req 2 - geterr 3,358ms (± 0.54%) 3,367ms (± 0.52%) +9ms (+ 0.27%) 3,336ms 3,416ms
Req 3 - references 221ms (± 0.95%) 221ms (± 1.20%) -1ms (- 0.32%) 214ms 227ms
Req 4 - navto 160ms (± 1.25%) 161ms (± 0.83%) +1ms (+ 0.56%) 158ms 163ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 62ms (± 5.76%) 63ms (± 4.79%) +1ms (+ 2.11%) 55ms 67ms
CompilerTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,490ms (± 0.44%) 1,491ms (± 0.62%) +1ms (+ 0.06%) 1,472ms 1,511ms
Req 2 - geterr 2,170ms (± 0.46%) 2,160ms (± 0.35%) -10ms (- 0.46%) 2,147ms 2,179ms
Req 3 - references 232ms (± 0.40%) 232ms (± 0.88%) +0ms (+ 0.04%) 228ms 237ms
Req 4 - navto 169ms (± 0.59%) 172ms (± 1.31%) +3ms (+ 1.71%) 167ms 177ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 65ms (± 3.11%) 62ms (± 4.64%) 🟩-3ms (- 4.32%) 57ms 67ms
xstateTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 2,035ms (± 0.50%) 2,024ms (± 0.53%) -10ms (- 0.50%) 2,003ms 2,054ms
Req 2 - geterr 750ms (± 0.47%) 751ms (± 0.53%) +1ms (+ 0.07%) 741ms 762ms
Req 3 - references 67ms (± 1.25%) 67ms (± 1.39%) +0ms (+ 0.45%) 65ms 69ms
Req 4 - navto 223ms (± 1.54%) 222ms (± 1.34%) -1ms (- 0.31%) 212ms 229ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 273ms (± 1.21%) 276ms (± 0.61%) +3ms (+ 1.03%) 273ms 280ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,449ms (± 0.60%) 1,446ms (± 0.75%) -3ms (- 0.21%) 1,424ms 1,476ms
Req 2 - geterr 3,470ms (± 0.72%) 3,485ms (± 0.64%) +16ms (+ 0.46%) 3,438ms 3,549ms
Req 3 - references 229ms (± 0.74%) 230ms (± 0.48%) +1ms (+ 0.44%) 228ms 233ms
Req 4 - navto 169ms (± 0.74%) 169ms (± 0.45%) +0ms (+ 0.06%) 167ms 170ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 56ms (± 4.41%) 56ms (± 1.10%) -0ms (- 0.53%) 55ms 57ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,516ms (± 0.60%) 1,514ms (± 0.78%) -2ms (- 0.11%) 1,497ms 1,554ms
Req 2 - geterr 2,297ms (± 0.46%) 2,291ms (± 0.40%) -6ms (- 0.27%) 2,276ms 2,313ms
Req 3 - references 242ms (± 0.71%) 241ms (± 0.48%) -1ms (- 0.58%) 238ms 243ms
Req 4 - navto 178ms (± 0.70%) 177ms (± 0.46%) -1ms (- 0.73%) 174ms 178ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 54ms (± 1.03%) 55ms (± 1.25%) +0ms (+ 0.74%) 53ms 56ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,134ms (± 0.74%) 2,129ms (± 0.81%) -5ms (- 0.25%) 2,102ms 2,172ms
Req 2 - geterr 768ms (± 0.52%) 769ms (± 0.41%) +1ms (+ 0.17%) 762ms 776ms
Req 3 - references 66ms (± 1.17%) 66ms (± 1.88%) -0ms (- 0.15%) 63ms 68ms
Req 4 - navto 227ms (± 0.69%) 227ms (± 0.33%) 0ms ( 0.00%) 226ms 229ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 278ms (± 0.68%) 278ms (± 0.74%) -0ms (- 0.07%) 272ms 282ms
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v10.16.3, x64)
  • Compiler-UnionsTSServer - node (v12.1.0, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v10.16.3, x64)
  • CompilerTSServer - node (v12.1.0, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v10.16.3, x64)
  • xstateTSServer - node (v12.1.0, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50540 10
Baseline main 10

Developer Information:

Download Benchmark

@DanielRosenwasser
Copy link
Member

@typescript-bot test top100

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 30, 2022

Heya @DanielRosenwasser, I've started to run the diff-based user code test suite on this PR at 00e3926. You can monitor the build here.

@ahejlsberg
Copy link
Member

@DanielRosenwasser @sandersn Looks like the top100 test is bombing out in one of the processes. Same issue over in #50535.

Copy link
Member

@ahejlsberg ahejlsberg left a comment

Choose a reason for hiding this comment

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

This change makes sense, but I'd prefer reducing the scope a bit as suggested here.

Comment on lines 15906 to 15908
if (shouldDeferIndexType(objectType)) {
return;
}
Copy link
Member

Choose a reason for hiding this comment

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

Remove this.

@@ -15903,6 +15903,9 @@ namespace ts {
}

function distributeIndexOverObjectType(objectType: Type, indexType: Type, writing: boolean) {
if (shouldDeferIndexType(objectType)) {
return;
}
// (T | U)[K] -> T[K] | U[K] (reading)
// (T | U)[K] -> T[K] & U[K] (writing)
// (T & U)[K] -> T[K] & U[K]
Copy link
Member

Choose a reason for hiding this comment

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

Change the following line to:

if (objectType.flags & TypeFlags.Union || objectType.Flags & TypeFlags.Intersection && !shouldDeferIndexType(objectType)) ...

Copy link
Member

Choose a reason for hiding this comment

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

I'm concerned that shouldDeferIndexType will also do (possibly expensive) work for union types, so I'd prefer only deferring for intersection types.

@Andarist Andarist requested a review from ahejlsberg August 31, 2022 05:51
@typescript-bot typescript-bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Aug 31, 2022
@Andarist
Copy link
Contributor Author

@ahejlsberg I've applied the suggested change and rerun the test suite locally - everything looks OK on this front, somebody from the TS team has to start new perf tests though.

@jakebailey
Copy link
Member

@typescript-bot perf test this my liege

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 31, 2022

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Compiler

Comparison Report - main..50540
Metric main 50540 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 363,175k (± 0.02%) 363,217k (± 0.02%) +43k (+ 0.01%) 363,014k 363,444k
Parse Time 2.07s (± 0.49%) 2.08s (± 0.53%) +0.00s (+ 0.14%) 2.06s 2.11s
Bind Time 0.79s (± 0.87%) 0.79s (± 0.76%) +0.00s (+ 0.13%) 0.78s 0.80s
Check Time 6.16s (± 0.58%) 6.18s (± 0.40%) +0.02s (+ 0.28%) 6.13s 6.22s
Emit Time 5.96s (± 0.38%) 5.97s (± 0.90%) +0.01s (+ 0.13%) 5.89s 6.08s
Total Time 14.98s (± 0.34%) 15.01s (± 0.48%) +0.03s (+ 0.19%) 14.88s 15.16s
Compiler-Unions - node (v10.16.3, x64)
Memory used 206,124k (± 0.04%) 206,160k (± 0.04%) +36k (+ 0.02%) 205,965k 206,323k
Parse Time 0.84s (± 0.27%) 0.83s (± 0.70%) -0.01s (- 0.72%) 0.82s 0.84s
Bind Time 0.47s (± 1.10%) 0.47s (± 1.65%) -0.00s (- 0.42%) 0.45s 0.49s
Check Time 8.43s (± 0.58%) 8.46s (± 0.42%) +0.03s (+ 0.37%) 8.37s 8.52s
Emit Time 2.49s (± 1.38%) 2.49s (± 1.11%) +0.01s (+ 0.20%) 2.41s 2.54s
Total Time 12.22s (± 0.49%) 12.25s (± 0.35%) +0.03s (+ 0.24%) 12.15s 12.32s
Monaco - node (v10.16.3, x64)
Memory used 344,681k (± 0.02%) 344,679k (± 0.02%) -3k (- 0.00%) 344,430k 344,798k
Parse Time 1.59s (± 0.63%) 1.61s (± 0.67%) +0.02s (+ 1.51%) 1.59s 1.63s
Bind Time 0.69s (± 0.53%) 0.70s (± 0.57%) +0.00s (+ 0.58%) 0.69s 0.71s
Check Time 6.23s (± 0.36%) 6.24s (± 0.49%) +0.01s (+ 0.11%) 6.17s 6.31s
Emit Time 3.21s (± 0.59%) 3.24s (± 1.06%) +0.03s (+ 0.90%) 3.19s 3.35s
Total Time 11.72s (± 0.35%) 11.79s (± 0.45%) +0.07s (+ 0.56%) 11.67s 11.89s
TFS - node (v10.16.3, x64)
Memory used 305,902k (± 0.02%) 305,850k (± 0.02%) -52k (- 0.02%) 305,756k 305,970k
Parse Time 1.28s (± 0.74%) 1.29s (± 0.62%) +0.00s (+ 0.23%) 1.27s 1.30s
Bind Time 0.67s (± 0.71%) 0.67s (± 0.60%) -0.00s (- 0.59%) 0.66s 0.68s
Check Time 5.50s (± 0.61%) 5.51s (± 0.51%) +0.01s (+ 0.22%) 5.46s 5.58s
Emit Time 3.40s (± 1.76%) 3.40s (± 1.31%) +0.01s (+ 0.18%) 3.28s 3.50s
Total Time 10.85s (± 0.76%) 10.87s (± 0.50%) +0.02s (+ 0.17%) 10.73s 10.97s
material-ui - node (v10.16.3, x64)
Memory used 460,763k (± 0.02%) 460,717k (± 0.01%) -46k (- 0.01%) 460,606k 460,863k
Parse Time 1.81s (± 0.52%) 1.83s (± 0.58%) +0.02s (+ 1.33%) 1.81s 1.85s
Bind Time 0.58s (± 1.42%) 0.58s (± 2.08%) -0.01s (- 1.37%) 0.56s 0.60s
Check Time 15.71s (± 0.76%) 15.74s (± 0.65%) +0.02s (+ 0.15%) 15.49s 15.90s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 18.11s (± 0.69%) 18.15s (± 0.61%) +0.04s (+ 0.22%) 17.88s 18.32s
xstate - node (v10.16.3, x64)
Memory used 584,526k (± 0.01%) 584,542k (± 0.01%) +16k (+ 0.00%) 584,377k 584,689k
Parse Time 2.60s (± 0.36%) 2.61s (± 0.48%) +0.01s (+ 0.27%) 2.57s 2.63s
Bind Time 0.91s (± 0.77%) 0.92s (± 0.74%) +0.00s (+ 0.55%) 0.90s 0.93s
Check Time 1.62s (± 0.61%) 1.63s (± 0.93%) +0.01s (+ 0.87%) 1.59s 1.66s
Emit Time 0.07s (± 4.13%) 0.07s (± 0.00%) -0.00s (- 2.78%) 0.07s 0.07s
Total Time 5.20s (± 0.36%) 5.23s (± 0.39%) +0.03s (+ 0.58%) 5.19s 5.26s
Angular - node (v12.1.0, x64)
Memory used 340,723k (± 0.02%) 340,801k (± 0.03%) +78k (+ 0.02%) 340,565k 340,970k
Parse Time 2.07s (± 0.67%) 2.08s (± 0.55%) +0.01s (+ 0.43%) 2.05s 2.10s
Bind Time 0.77s (± 0.87%) 0.77s (± 0.43%) +0.00s (+ 0.39%) 0.76s 0.78s
Check Time 5.81s (± 0.49%) 5.85s (± 0.43%) +0.04s (+ 0.69%) 5.79s 5.89s
Emit Time 6.20s (± 0.96%) 6.24s (± 0.92%) +0.03s (+ 0.55%) 6.16s 6.39s
Total Time 14.85s (± 0.51%) 14.93s (± 0.37%) +0.08s (+ 0.54%) 14.83s 15.11s
Compiler-Unions - node (v12.1.0, x64)
Memory used 193,847k (± 0.13%) 193,783k (± 0.11%) -64k (- 0.03%) 193,371k 194,066k
Parse Time 0.82s (± 0.89%) 0.82s (± 0.75%) +0.00s (+ 0.37%) 0.80s 0.83s
Bind Time 0.47s (± 1.19%) 0.47s (± 0.85%) +0.00s (+ 0.21%) 0.46s 0.48s
Check Time 6.61s (± 0.47%) 6.65s (± 0.51%) +0.03s (+ 0.51%) 6.55s 6.70s
Emit Time 2.45s (± 0.93%) 2.47s (± 0.92%) +0.03s (+ 1.14%) 2.42s 2.51s
Total Time 10.35s (± 0.38%) 10.41s (± 0.36%) +0.06s (+ 0.63%) 10.30s 10.47s
Monaco - node (v12.1.0, x64)
Memory used 327,705k (± 0.01%) 327,694k (± 0.02%) -11k (- 0.00%) 327,603k 327,922k
Parse Time 1.57s (± 0.73%) 1.57s (± 0.64%) +0.00s (+ 0.06%) 1.56s 1.61s
Bind Time 0.69s (± 0.96%) 0.69s (± 0.75%) -0.00s (- 0.29%) 0.68s 0.71s
Check Time 5.81s (± 0.50%) 5.81s (± 0.44%) +0.00s (+ 0.05%) 5.75s 5.87s
Emit Time 3.28s (± 0.64%) 3.28s (± 0.57%) +0.00s (+ 0.06%) 3.24s 3.33s
Total Time 11.35s (± 0.28%) 11.36s (± 0.33%) +0.01s (+ 0.07%) 11.27s 11.43s
TFS - node (v12.1.0, x64)
Memory used 290,497k (± 0.03%) 290,514k (± 0.02%) +17k (+ 0.01%) 290,439k 290,648k
Parse Time 1.28s (± 0.62%) 1.29s (± 0.56%) +0.01s (+ 0.78%) 1.28s 1.31s
Bind Time 0.67s (± 1.11%) 0.67s (± 1.21%) +0.00s (+ 0.45%) 0.66s 0.69s
Check Time 5.36s (± 0.22%) 5.39s (± 0.64%) +0.03s (+ 0.48%) 5.29s 5.44s
Emit Time 3.45s (± 0.83%) 3.46s (± 0.77%) +0.01s (+ 0.41%) 3.41s 3.52s
Total Time 10.76s (± 0.26%) 10.82s (± 0.51%) +0.05s (+ 0.49%) 10.65s 10.94s
material-ui - node (v12.1.0, x64)
Memory used 440,008k (± 0.01%) 439,874k (± 0.07%) -134k (- 0.03%) 438,732k 440,176k
Parse Time 1.81s (± 0.53%) 1.82s (± 0.61%) +0.01s (+ 0.39%) 1.79s 1.84s
Bind Time 0.55s (± 0.90%) 0.55s (± 0.73%) +0.00s (+ 0.92%) 0.54s 0.56s
Check Time 12.71s (± 0.57%) 12.84s (± 0.75%) +0.13s (+ 1.01%) 12.64s 12.97s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.07s (± 0.51%) 15.21s (± 0.65%) +0.14s (+ 0.96%) 15.01s 15.36s
xstate - node (v12.1.0, x64)
Memory used 552,944k (± 1.30%) 552,879k (± 1.31%) -64k (- 0.01%) 549,531k 582,102k
Parse Time 2.54s (± 0.74%) 2.54s (± 0.45%) +0.00s (+ 0.04%) 2.52s 2.57s
Bind Time 0.89s (± 0.54%) 0.88s (± 0.66%) -0.00s (- 0.45%) 0.87s 0.89s
Check Time 1.49s (± 0.55%) 1.50s (± 0.40%) +0.01s (+ 0.34%) 1.49s 1.51s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 4.98s (± 0.27%) 4.99s (± 0.34%) +0.01s (+ 0.14%) 4.96s 5.04s
Angular - node (v14.15.1, x64)
Memory used 338,723k (± 0.01%) 338,738k (± 0.00%) +16k (+ 0.00%) 338,706k 338,774k
Parse Time 2.06s (± 0.53%) 2.08s (± 1.23%) +0.02s (+ 0.83%) 2.03s 2.14s
Bind Time 0.79s (± 0.70%) 0.79s (± 0.62%) +0.00s (+ 0.25%) 0.78s 0.80s
Check Time 5.82s (± 0.66%) 5.83s (± 0.45%) +0.00s (+ 0.09%) 5.78s 5.88s
Emit Time 6.17s (± 1.03%) 6.16s (± 0.53%) -0.01s (- 0.15%) 6.09s 6.22s
Total Time 14.83s (± 0.56%) 14.85s (± 0.33%) +0.01s (+ 0.09%) 14.76s 14.96s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,632k (± 0.01%) 192,864k (± 0.42%) +232k (+ 0.12%) 191,479k 195,951k
Parse Time 0.85s (± 0.70%) 0.85s (± 0.61%) -0.01s (- 0.70%) 0.84s 0.86s
Bind Time 0.48s (± 0.77%) 0.48s (± 0.46%) -0.00s (- 0.82%) 0.48s 0.49s
Check Time 6.67s (± 0.38%) 6.67s (± 0.68%) +0.00s (+ 0.07%) 6.61s 6.79s
Emit Time 2.41s (± 0.88%) 2.41s (± 0.86%) +0.00s (+ 0.08%) 2.37s 2.46s
Total Time 10.42s (± 0.40%) 10.42s (± 0.49%) -0.00s (- 0.02%) 10.33s 10.52s
Monaco - node (v14.15.1, x64)
Memory used 326,520k (± 0.01%) 326,502k (± 0.01%) -18k (- 0.01%) 326,425k 326,562k
Parse Time 1.56s (± 0.33%) 1.57s (± 0.89%) +0.01s (+ 0.70%) 1.56s 1.62s
Bind Time 0.72s (± 0.72%) 0.72s (± 0.94%) +0.00s (+ 0.42%) 0.71s 0.74s
Check Time 5.69s (± 0.47%) 5.71s (± 0.30%) +0.02s (+ 0.28%) 5.68s 5.76s
Emit Time 3.30s (± 0.54%) 3.32s (± 0.33%) +0.02s (+ 0.54%) 3.30s 3.35s
Total Time 11.29s (± 0.34%) 11.33s (± 0.24%) +0.04s (+ 0.40%) 11.28s 11.38s
TFS - node (v14.15.1, x64)
Memory used 289,651k (± 0.00%) 289,637k (± 0.01%) -15k (- 0.01%) 289,590k 289,674k
Parse Time 1.30s (± 0.76%) 1.30s (± 0.63%) -0.00s (- 0.15%) 1.28s 1.32s
Bind Time 0.79s (± 0.70%) 0.78s (± 1.40%) -0.01s (- 1.26%) 0.74s 0.79s
Check Time 5.33s (± 0.36%) 5.35s (± 0.24%) +0.01s (+ 0.22%) 5.32s 5.37s
Emit Time 3.57s (± 0.58%) 3.57s (± 0.56%) -0.00s (- 0.08%) 3.53s 3.61s
Total Time 11.00s (± 0.33%) 11.00s (± 0.27%) -0.00s (- 0.02%) 10.95s 11.07s
material-ui - node (v14.15.1, x64)
Memory used 438,119k (± 0.04%) 437,993k (± 0.07%) -125k (- 0.03%) 437,008k 438,242k
Parse Time 1.85s (± 0.51%) 1.85s (± 0.48%) +0.00s (+ 0.22%) 1.84s 1.87s
Bind Time 0.58s (± 0.51%) 0.58s (± 0.77%) +0.00s (+ 0.69%) 0.57s 0.59s
Check Time 12.83s (± 0.48%) 12.95s (± 1.05%) +0.12s (+ 0.90%) 12.68s 13.24s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.26s (± 0.41%) 15.39s (± 0.91%) +0.12s (+ 0.81%) 15.12s 15.69s
xstate - node (v14.15.1, x64)
Memory used 547,419k (± 0.00%) 547,405k (± 0.00%) -13k (- 0.00%) 547,361k 547,445k
Parse Time 2.59s (± 0.36%) 2.60s (± 0.46%) +0.01s (+ 0.39%) 2.58s 2.64s
Bind Time 0.97s (± 0.89%) 0.97s (± 0.51%) -0.00s (- 0.21%) 0.96s 0.98s
Check Time 1.53s (± 0.54%) 1.54s (± 0.44%) +0.01s (+ 0.66%) 1.52s 1.55s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.16s (± 0.18%) 5.18s (± 0.21%) +0.02s (+ 0.29%) 5.15s 5.20s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50540 10
Baseline main 10

TSServer

Comparison Report - main..50540
Metric main 50540 Delta Best Worst
Compiler-UnionsTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,397ms (± 0.38%) 1,404ms (± 0.55%) +7ms (+ 0.47%) 1,392ms 1,420ms
Req 2 - geterr 4,073ms (± 0.52%) 4,110ms (± 0.68%) +37ms (+ 0.91%) 4,042ms 4,185ms
Req 3 - references 231ms (± 0.84%) 230ms (± 0.65%) -0ms (- 0.09%) 226ms 233ms
Req 4 - navto 171ms (± 1.36%) 173ms (± 1.05%) +2ms (+ 1.40%) 170ms 177ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 94ms (± 2.80%) 97ms (± 2.72%) +3ms (+ 3.30%) 93ms 106ms
CompilerTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,485ms (± 0.16%) 1,497ms (± 0.55%) +12ms (+ 0.80%) 1,474ms 1,513ms
Req 2 - geterr 2,244ms (± 0.36%) 2,259ms (± 0.32%) +15ms (+ 0.66%) 2,235ms 2,271ms
Req 3 - references 241ms (± 0.72%) 243ms (± 0.75%) +2ms (+ 0.79%) 238ms 246ms
Req 4 - navto 183ms (± 0.66%) 184ms (± 0.61%) +1ms (+ 0.38%) 181ms 187ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 68ms (± 1.38%) 69ms (± 2.53%) +0ms (+ 0.44%) 62ms 71ms
xstateTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 2,077ms (± 0.42%) 2,078ms (± 0.20%) +2ms (+ 0.07%) 2,070ms 2,091ms
Req 2 - geterr 802ms (± 0.98%) 801ms (± 0.54%) -1ms (- 0.07%) 789ms 809ms
Req 3 - references 99ms (± 1.54%) 100ms (± 1.68%) +1ms (+ 0.80%) 95ms 104ms
Req 4 - navto 231ms (± 0.74%) 232ms (± 1.26%) +2ms (+ 0.78%) 225ms 238ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 278ms (± 1.01%) 281ms (± 0.87%) +4ms (+ 1.26%) 275ms 287ms
Compiler-UnionsTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,402ms (± 0.68%) 1,410ms (± 0.79%) +8ms (+ 0.59%) 1,380ms 1,427ms
Req 2 - geterr 3,342ms (± 0.46%) 3,355ms (± 0.50%) +12ms (+ 0.37%) 3,319ms 3,384ms
Req 3 - references 219ms (± 1.03%) 219ms (± 0.68%) +1ms (+ 0.27%) 216ms 224ms
Req 4 - navto 160ms (± 1.19%) 161ms (± 1.54%) +0ms (+ 0.12%) 157ms 166ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 60ms (± 4.42%) 63ms (± 5.73%) +3ms (+ 4.69%) 54ms 67ms
CompilerTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,489ms (± 0.60%) 1,490ms (± 0.54%) +1ms (+ 0.07%) 1,477ms 1,516ms
Req 2 - geterr 2,161ms (± 0.38%) 2,168ms (± 0.48%) +7ms (+ 0.33%) 2,140ms 2,193ms
Req 3 - references 233ms (± 0.85%) 231ms (± 0.98%) -2ms (- 0.65%) 226ms 236ms
Req 4 - navto 169ms (± 0.96%) 170ms (± 0.86%) +0ms (+ 0.18%) 166ms 173ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 64ms (± 2.98%) 65ms (± 2.91%) +1ms (+ 1.41%) 59ms 68ms
xstateTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 2,019ms (± 0.39%) 2,042ms (± 0.39%) +23ms (+ 1.13%) 2,021ms 2,053ms
Req 2 - geterr 752ms (± 0.44%) 756ms (± 0.62%) +4ms (+ 0.57%) 748ms 770ms
Req 3 - references 67ms (± 2.39%) 68ms (± 1.79%) +1ms (+ 1.20%) 65ms 70ms
Req 4 - navto 223ms (± 2.34%) 223ms (± 1.09%) +0ms (+ 0.09%) 214ms 226ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 276ms (± 0.98%) 274ms (± 1.18%) -2ms (- 0.76%) 267ms 284ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,437ms (± 0.42%) 1,442ms (± 0.49%) +6ms (+ 0.38%) 1,426ms 1,459ms
Req 2 - geterr 3,491ms (± 0.69%) 3,499ms (± 0.65%) +8ms (+ 0.22%) 3,453ms 3,561ms
Req 3 - references 229ms (± 0.38%) 228ms (± 0.32%) -1ms (- 0.44%) 226ms 229ms
Req 4 - navto 168ms (± 0.53%) 168ms (± 1.05%) -0ms (- 0.06%) 166ms 173ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 59ms (± 5.91%) 58ms (± 5.38%) -1ms (- 2.36%) 55ms 66ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,520ms (± 0.74%) 1,513ms (± 0.46%) -8ms (- 0.50%) 1,504ms 1,533ms
Req 2 - geterr 2,301ms (± 0.56%) 2,297ms (± 0.47%) -4ms (- 0.16%) 2,275ms 2,326ms
Req 3 - references 242ms (± 0.71%) 242ms (± 0.55%) -0ms (- 0.17%) 239ms 246ms
Req 4 - navto 178ms (± 0.67%) 178ms (± 0.63%) -1ms (- 0.39%) 175ms 180ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 54ms (± 1.07%) 55ms (± 1.74%) +0ms (+ 0.55%) 54ms 58ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,121ms (± 0.45%) 2,129ms (± 0.56%) +8ms (+ 0.39%) 2,107ms 2,162ms
Req 2 - geterr 770ms (± 0.49%) 774ms (± 0.60%) +5ms (+ 0.62%) 764ms 784ms
Req 3 - references 66ms (± 1.36%) 69ms (± 9.24%) +3ms (+ 4.57%) 64ms 94ms
Req 4 - navto 228ms (± 0.66%) 229ms (± 0.74%) +1ms (+ 0.31%) 224ms 232ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 277ms (± 0.73%) 279ms (± 0.80%) +2ms (+ 0.54%) 275ms 283ms
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v10.16.3, x64)
  • Compiler-UnionsTSServer - node (v12.1.0, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v10.16.3, x64)
  • CompilerTSServer - node (v12.1.0, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v10.16.3, x64)
  • xstateTSServer - node (v12.1.0, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50540 10
Baseline main 10

Developer Information:

Download Benchmark

@ahejlsberg
Copy link
Member

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 31, 2022

Heya @ahejlsberg, I've started to run the diff-based user code test suite on this PR at 2ba9ff1. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 31, 2022

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 31, 2022

Heya @ahejlsberg, I've started to run the diff-based user code test suite on this PR at 2ba9ff1. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 31, 2022

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

@typescript-bot
Copy link
Collaborator

@ahejlsberg Here are the results of running the user test suite comparing main and refs/pull/50540/merge:

Everything looks good!

@typescript-bot
Copy link
Collaborator

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

@Andarist Andarist force-pushed the defer-distribution-index-over-object-type branch from ae87342 to 873dfea Compare September 1, 2022 10:55
@ahejlsberg ahejlsberg merged commit 238c341 into microsoft:main Sep 1, 2022
@Andarist Andarist deleted the defer-distribution-index-over-object-type branch September 1, 2022 14:30
@Andarist
Copy link
Contributor Author

Andarist commented Sep 1, 2022

@ahejlsberg should this perhaps be cherry-picked into the 4.8 release?

@ahejlsberg
Copy link
Member

@Andarist Yup, it's already on the list.

@andrewbranch
Copy link
Member

@typescript-bot cherry-pick this to release-4.8

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 1, 2022

Heya @andrewbranch, I've started to run the task to cherry-pick this into release-4.8 on this PR at 873dfea. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

Hey @andrewbranch, I've opened #50588 for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Milestone Bug PRs that fix a bug with a specific milestone
Projects
None yet
Development

Successfully merging this pull request may close these issues.

NonNullable is accidentally simplified away from generic index accesses
6 participants