Skip to content

Narrow QualifiedName inside typeof #42540

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
merged 1 commit into from
Jan 28, 2021
Merged

Conversation

sandersn
Copy link
Member

@sandersn sandersn commented Jan 28, 2021

Previously this wasn't narrowed at all. Now there is a control flow node and code in isMatchingReference.

I think this is a straightforward improvement as long as it doesn't cause performance problems.

Fixes #40977

Previously this wasn't narrowed at all. Now there is control flow and
code in isMatchingReference.
@sandersn
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jan 28, 2021

Heya @sandersn, I've started to run the perf test suite on this PR at c1922d3. 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:

Comparison Report - master..42540

Metric master 42540 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 346,539k (± 0.01%) 346,542k (± 0.03%) +3k (+ 0.00%) 346,398k 346,773k
Parse Time 1.98s (± 0.41%) 1.97s (± 0.31%) -0.01s (- 0.30%) 1.96s 1.98s
Bind Time 0.82s (± 0.58%) 0.83s (± 1.06%) +0.01s (+ 1.22%) 0.82s 0.85s
Check Time 4.98s (± 0.39%) 5.00s (± 0.72%) +0.02s (+ 0.32%) 4.93s 5.12s
Emit Time 5.31s (± 0.47%) 5.33s (± 0.49%) +0.02s (+ 0.38%) 5.27s 5.37s
Total Time 13.09s (± 0.29%) 13.13s (± 0.43%) +0.04s (+ 0.31%) 13.00s 13.31s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,925k (± 0.04%) 214,991k (± 0.02%) +67k (+ 0.03%) 214,918k 215,054k
Parse Time 0.79s (± 1.03%) 0.79s (± 0.84%) +0.00s (+ 0.00%) 0.77s 0.80s
Bind Time 0.49s (± 1.53%) 0.49s (± 1.19%) -0.01s (- 1.42%) 0.48s 0.50s
Check Time 10.64s (± 0.39%) 10.71s (± 0.75%) +0.07s (+ 0.63%) 10.55s 10.95s
Emit Time 2.31s (± 0.83%) 2.35s (± 1.66%) +0.04s (+ 1.56%) 2.25s 2.43s
Total Time 14.24s (± 0.33%) 14.33s (± 0.55%) +0.09s (+ 0.65%) 14.19s 14.55s
Monaco - node (v10.16.3, x64)
Memory used 355,330k (± 0.02%) 355,407k (± 0.02%) +77k (+ 0.02%) 355,282k 355,546k
Parse Time 1.59s (± 0.31%) 1.60s (± 0.47%) +0.00s (+ 0.13%) 1.58s 1.61s
Bind Time 0.72s (± 0.56%) 0.73s (± 0.79%) +0.01s (+ 1.53%) 0.71s 0.74s
Check Time 5.16s (± 0.44%) 5.15s (± 0.43%) -0.01s (- 0.14%) 5.08s 5.19s
Emit Time 2.81s (± 0.77%) 2.82s (± 0.71%) +0.01s (+ 0.32%) 2.78s 2.87s
Total Time 10.28s (± 0.36%) 10.29s (± 0.25%) +0.01s (+ 0.13%) 10.25s 10.37s
TFS - node (v10.16.3, x64)
Memory used 308,255k (± 0.02%) 308,179k (± 0.02%) -76k (- 0.02%) 308,114k 308,321k
Parse Time 1.23s (± 0.60%) 1.23s (± 0.54%) +0.00s (+ 0.00%) 1.22s 1.25s
Bind Time 0.68s (± 0.50%) 0.68s (± 0.59%) +0.00s (+ 0.30%) 0.67s 0.69s
Check Time 4.60s (± 0.56%) 4.59s (± 0.32%) -0.01s (- 0.26%) 4.56s 4.62s
Emit Time 2.94s (± 0.99%) 2.94s (± 0.66%) +0.01s (+ 0.17%) 2.90s 2.99s
Total Time 9.44s (± 0.42%) 9.44s (± 0.36%) -0.00s (- 0.04%) 9.39s 9.52s
material-ui - node (v10.16.3, x64)
Memory used 496,313k (± 0.01%) 496,361k (± 0.02%) +48k (+ 0.01%) 496,205k 496,585k
Parse Time 2.05s (± 0.39%) 2.05s (± 0.42%) -0.00s (- 0.19%) 2.03s 2.07s
Bind Time 0.66s (± 1.70%) 0.66s (± 1.23%) +0.00s (+ 0.76%) 0.64s 0.67s
Check Time 14.00s (± 0.61%) 13.97s (± 0.35%) -0.03s (- 0.19%) 13.81s 14.06s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.71s (± 0.53%) 16.68s (± 0.27%) -0.02s (- 0.14%) 16.52s 16.75s
Angular - node (v12.1.0, x64)
Memory used 323,922k (± 0.11%) 323,930k (± 0.11%) +8k (+ 0.00%) 322,515k 324,341k
Parse Time 1.97s (± 0.57%) 1.97s (± 0.59%) +0.00s (+ 0.25%) 1.95s 2.01s
Bind Time 0.80s (± 0.77%) 0.81s (± 0.61%) +0.01s (+ 0.88%) 0.80s 0.82s
Check Time 4.92s (± 0.86%) 4.89s (± 0.35%) -0.03s (- 0.69%) 4.85s 4.92s
Emit Time 5.49s (± 0.49%) 5.48s (± 0.89%) -0.02s (- 0.29%) 5.42s 5.65s
Total Time 13.18s (± 0.50%) 13.14s (± 0.50%) -0.04s (- 0.27%) 13.03s 13.36s
Compiler-Unions - node (v12.1.0, x64)
Memory used 200,362k (± 0.07%) 200,171k (± 0.09%) -191k (- 0.10%) 199,645k 200,517k
Parse Time 0.77s (± 0.72%) 0.77s (± 0.75%) +0.00s (+ 0.13%) 0.76s 0.78s
Bind Time 0.50s (± 1.50%) 0.50s (± 0.73%) -0.00s (- 0.20%) 0.49s 0.50s
Check Time 9.90s (± 0.97%) 9.82s (± 0.75%) -0.07s (- 0.76%) 9.67s 10.02s
Emit Time 2.36s (± 1.50%) 2.34s (± 0.87%) -0.02s (- 0.72%) 2.30s 2.39s
Total Time 13.53s (± 0.69%) 13.44s (± 0.51%) -0.09s (- 0.69%) 13.31s 13.61s
Monaco - node (v12.1.0, x64)
Memory used 337,514k (± 0.02%) 337,476k (± 0.02%) -38k (- 0.01%) 337,333k 337,592k
Parse Time 1.58s (± 0.89%) 1.58s (± 0.52%) +0.00s (+ 0.06%) 1.57s 1.60s
Bind Time 0.70s (± 0.43%) 0.70s (± 0.47%) +0.00s (+ 0.29%) 0.69s 0.71s
Check Time 4.94s (± 0.52%) 4.90s (± 0.38%) -0.04s (- 0.77%) 4.87s 4.96s
Emit Time 2.87s (± 1.02%) 2.87s (± 0.79%) +0.00s (+ 0.17%) 2.83s 2.93s
Total Time 10.09s (± 0.56%) 10.06s (± 0.26%) -0.03s (- 0.31%) 10.01s 10.13s
TFS - node (v12.1.0, x64)
Memory used 292,438k (± 0.02%) 292,459k (± 0.02%) +21k (+ 0.01%) 292,346k 292,572k
Parse Time 1.25s (± 0.48%) 1.25s (± 0.48%) -0.00s (- 0.08%) 1.23s 1.25s
Bind Time 0.65s (± 0.73%) 0.66s (± 1.06%) +0.01s (+ 1.85%) 0.65s 0.68s
Check Time 4.53s (± 0.67%) 4.50s (± 0.50%) -0.03s (- 0.66%) 4.46s 4.57s
Emit Time 2.93s (± 0.74%) 2.92s (± 1.06%) -0.01s (- 0.48%) 2.85s 3.00s
Total Time 9.36s (± 0.58%) 9.33s (± 0.47%) -0.03s (- 0.36%) 9.23s 9.43s
material-ui - node (v12.1.0, x64)
Memory used 473,504k (± 0.03%) 473,301k (± 0.08%) -203k (- 0.04%) 472,302k 473,705k
Parse Time 2.06s (± 0.35%) 2.05s (± 0.40%) -0.01s (- 0.34%) 2.04s 2.08s
Bind Time 0.63s (± 0.78%) 0.64s (± 0.74%) +0.01s (+ 1.42%) 0.63s 0.65s
Check Time 12.53s (± 0.79%) 12.56s (± 0.75%) +0.03s (+ 0.22%) 12.40s 12.85s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.23s (± 0.66%) 15.26s (± 0.63%) +0.03s (+ 0.18%) 15.09s 15.55s
Angular - node (v14.15.1, x64)
Memory used 322,699k (± 0.01%) 322,727k (± 0.01%) +29k (+ 0.01%) 322,681k 322,782k
Parse Time 2.00s (± 0.67%) 1.99s (± 0.55%) -0.01s (- 0.40%) 1.97s 2.01s
Bind Time 0.86s (± 0.80%) 0.86s (± 0.35%) +0.00s (+ 0.23%) 0.85s 0.86s
Check Time 4.90s (± 0.46%) 4.88s (± 0.28%) -0.02s (- 0.33%) 4.86s 4.91s
Emit Time 5.55s (± 0.51%) 5.56s (± 0.40%) +0.00s (+ 0.07%) 5.49s 5.59s
Total Time 13.30s (± 0.41%) 13.29s (± 0.17%) -0.01s (- 0.09%) 13.23s 13.33s
Compiler-Unions - node (v14.15.1, x64)
Memory used 201,771k (± 0.54%) 202,083k (± 0.58%) +312k (+ 0.15%) 199,738k 203,523k
Parse Time 0.82s (± 0.73%) 0.82s (± 0.81%) +0.00s (+ 0.61%) 0.81s 0.83s
Bind Time 0.53s (± 0.98%) 0.53s (± 0.42%) 0.00s ( 0.00%) 0.52s 0.53s
Check Time 9.84s (± 0.50%) 9.84s (± 0.48%) -0.00s (- 0.01%) 9.76s 9.96s
Emit Time 2.35s (± 1.19%) 2.33s (± 1.15%) -0.02s (- 0.64%) 2.30s 2.41s
Total Time 13.54s (± 0.47%) 13.52s (± 0.46%) -0.01s (- 0.10%) 13.42s 13.65s
Monaco - node (v14.15.1, x64)
Memory used 336,868k (± 0.01%) 336,856k (± 0.01%) -12k (- 0.00%) 336,791k 336,924k
Parse Time 1.63s (± 0.40%) 1.64s (± 0.71%) +0.01s (+ 0.55%) 1.62s 1.68s
Bind Time 0.73s (± 0.80%) 0.73s (± 0.81%) +0.01s (+ 0.96%) 0.72s 0.75s
Check Time 4.86s (± 0.61%) 4.85s (± 0.25%) -0.01s (- 0.29%) 4.83s 4.87s
Emit Time 2.93s (± 0.32%) 2.93s (± 0.50%) +0.00s (+ 0.03%) 2.90s 2.96s
Total Time 10.15s (± 0.32%) 10.16s (± 0.21%) +0.01s (+ 0.06%) 10.12s 10.21s
TFS - node (v14.15.1, x64)
Memory used 291,623k (± 0.01%) 291,636k (± 0.01%) +13k (+ 0.00%) 291,602k 291,732k
Parse Time 1.30s (± 0.77%) 1.29s (± 0.46%) -0.00s (- 0.15%) 1.28s 1.31s
Bind Time 0.69s (± 0.83%) 0.69s (± 0.68%) 0.00s ( 0.00%) 0.68s 0.70s
Check Time 4.48s (± 0.30%) 4.48s (± 0.39%) +0.00s (+ 0.00%) 4.43s 4.52s
Emit Time 3.08s (± 0.80%) 3.07s (± 0.65%) -0.02s (- 0.52%) 3.02s 3.11s
Total Time 9.55s (± 0.24%) 9.54s (± 0.21%) -0.02s (- 0.19%) 9.50s 9.58s
material-ui - node (v14.15.1, x64)
Memory used 471,862k (± 0.04%) 471,804k (± 0.06%) -58k (- 0.01%) 471,114k 472,335k
Parse Time 2.13s (± 0.90%) 2.13s (± 0.75%) +0.00s (+ 0.00%) 2.09s 2.17s
Bind Time 0.69s (± 0.83%) 0.70s (± 0.68%) +0.01s (+ 1.88%) 0.69s 0.71s
Check Time 12.66s (± 0.55%) 12.77s (± 0.70%) +0.11s (+ 0.85%) 12.59s 12.95s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.48s (± 0.51%) 15.60s (± 0.61%) +0.12s (+ 0.76%) 15.41s 15.79s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory8 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)
Benchmark Name Iterations
Current 42540 10
Baseline master 10

@sandersn sandersn merged commit 9dbfaee into master Jan 28, 2021
@sandersn sandersn deleted the narrow-qualifiedname-in-typeof branch January 28, 2021 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team 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.

Typeof (narrowed generic parameter) does not use narrowed type
3 participants