Skip to content
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

[Experiment] fix(40617): handle uninitialized class member with computed key #45974

Merged
merged 1 commit into from
Mar 5, 2022

Conversation

a-tarasyuk
Copy link
Contributor

@a-tarasyuk a-tarasyuk commented Sep 20, 2021

Fixes #40617
Fixes #45965
Fixes #36230
Fixes #29042
Fixes #46111
Fixes #14137

@a-tarasyuk a-tarasyuk marked this pull request as ready for review September 20, 2021 18:12
@typescript-bot typescript-bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Sep 20, 2021
@a-tarasyuk a-tarasyuk force-pushed the fix/40617 branch 2 times, most recently from 7dc42e8 to fed9253 Compare September 21, 2021 15:09
@typescript-bot typescript-bot added For Backlog Bug PRs that fix a backlog bug and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Sep 21, 2021
@andrewbranch
Copy link
Member

@typescript-bot pack this
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 21, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 21, 2021

Heya @andrewbranch, I've started to run the tarball bundle task on this PR at fed9253. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 21, 2021

Hey @andrewbranch, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/111062/artifacts?artifactName=tgz&fileId=7CA2AC096B167B7FDD4276560CB0C161A854525027E66E66D7D7B6164D844A3102&fileName=/typescript-4.5.0-insiders.20210921.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@4.5.0-pr-45974-3".;

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - main..45974

Metric main 45974 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 352,256k (± 0.02%) 352,341k (± 0.02%) +84k (+ 0.02%) 352,128k 352,514k
Parse Time 1.92s (± 0.29%) 1.91s (± 0.49%) -0.01s (- 0.42%) 1.89s 1.93s
Bind Time 0.85s (± 0.47%) 0.85s (± 0.78%) -0.00s (- 0.12%) 0.84s 0.86s
Check Time 5.44s (± 0.60%) 5.43s (± 0.43%) -0.01s (- 0.22%) 5.39s 5.50s
Emit Time 5.83s (± 0.42%) 5.83s (± 0.77%) +0.00s (+ 0.00%) 5.73s 5.93s
Total Time 14.05s (± 0.33%) 14.02s (± 0.40%) -0.02s (- 0.18%) 13.91s 14.13s
Compiler-Unions - node (v10.16.3, x64)
Memory used 203,722k (± 0.05%) 203,684k (± 0.03%) -38k (- 0.02%) 203,552k 203,892k
Parse Time 0.79s (± 0.87%) 0.78s (± 1.06%) -0.00s (- 0.00%) 0.77s 0.80s
Bind Time 0.53s (± 0.94%) 0.52s (± 1.49%) -0.01s (- 0.95%) 0.50s 0.53s
Check Time 7.85s (± 0.50%) 7.87s (± 0.32%) +0.02s (+ 0.24%) 7.81s 7.91s
Emit Time 2.44s (± 1.05%) 2.47s (± 1.33%) +0.02s (+ 0.98%) 2.41s 2.54s
Total Time 11.60s (± 0.51%) 11.64s (± 0.38%) +0.04s (+ 0.34%) 11.55s 11.74s
Monaco - node (v10.16.3, x64)
Memory used 340,693k (± 0.01%) 340,723k (± 0.01%) +30k (+ 0.01%) 340,647k 340,810k
Parse Time 1.45s (± 0.65%) 1.45s (± 0.70%) -0.01s (- 0.34%) 1.42s 1.47s
Bind Time 0.75s (± 0.99%) 0.75s (± 1.08%) +0.00s (+ 0.40%) 0.74s 0.77s
Check Time 5.42s (± 0.68%) 5.45s (± 0.36%) +0.04s (+ 0.65%) 5.40s 5.49s
Emit Time 3.17s (± 0.97%) 3.16s (± 0.48%) -0.01s (- 0.28%) 3.13s 3.19s
Total Time 10.79s (± 0.29%) 10.81s (± 0.19%) +0.02s (+ 0.19%) 10.76s 10.85s
TFS - node (v10.16.3, x64)
Memory used 304,112k (± 0.03%) 304,157k (± 0.02%) +44k (+ 0.01%) 304,033k 304,277k
Parse Time 1.18s (± 0.69%) 1.18s (± 0.34%) -0.00s (- 0.17%) 1.17s 1.19s
Bind Time 0.71s (± 0.73%) 0.71s (± 0.78%) -0.00s (- 0.14%) 0.70s 0.72s
Check Time 4.94s (± 0.55%) 4.97s (± 0.47%) +0.03s (+ 0.53%) 4.94s 5.05s
Emit Time 3.34s (± 1.43%) 3.33s (± 1.59%) -0.01s (- 0.27%) 3.23s 3.47s
Total Time 10.18s (± 0.65%) 10.19s (± 0.60%) +0.01s (+ 0.13%) 10.07s 10.31s
material-ui - node (v10.16.3, x64)
Memory used 469,029k (± 0.01%) 468,980k (± 0.01%) -49k (- 0.01%) 468,877k 469,112k
Parse Time 1.73s (± 0.59%) 1.74s (± 0.53%) +0.01s (+ 0.40%) 1.72s 1.76s
Bind Time 0.67s (± 0.56%) 0.67s (± 1.20%) +0.00s (+ 0.45%) 0.64s 0.68s
Check Time 14.29s (± 0.38%) 14.30s (± 0.26%) +0.01s (+ 0.08%) 14.21s 14.37s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.69s (± 0.37%) 16.71s (± 0.24%) +0.02s (+ 0.14%) 16.63s 16.77s
Angular - node (v12.1.0, x64)
Memory used 330,234k (± 0.02%) 330,250k (± 0.02%) +16k (+ 0.00%) 330,116k 330,466k
Parse Time 1.88s (± 0.39%) 1.88s (± 0.60%) +0.00s (+ 0.05%) 1.84s 1.90s
Bind Time 0.83s (± 0.70%) 0.84s (± 0.99%) +0.00s (+ 0.24%) 0.82s 0.86s
Check Time 5.26s (± 0.41%) 5.24s (± 0.43%) -0.02s (- 0.32%) 5.20s 5.31s
Emit Time 6.09s (± 0.91%) 6.04s (± 0.86%) -0.05s (- 0.74%) 5.97s 6.21s
Total Time 14.06s (± 0.40%) 14.00s (± 0.47%) -0.06s (- 0.43%) 13.89s 14.17s
Compiler-Unions - node (v12.1.0, x64)
Memory used 190,875k (± 0.32%) 191,036k (± 0.15%) +161k (+ 0.08%) 190,219k 191,443k
Parse Time 0.78s (± 0.38%) 0.78s (± 0.51%) +0.00s (+ 0.39%) 0.77s 0.79s
Bind Time 0.53s (± 0.98%) 0.53s (± 1.16%) 0.00s ( 0.00%) 0.52s 0.55s
Check Time 7.40s (± 0.52%) 7.39s (± 0.54%) -0.02s (- 0.24%) 7.33s 7.49s
Emit Time 2.46s (± 1.19%) 2.47s (± 0.56%) +0.01s (+ 0.37%) 2.44s 2.50s
Total Time 11.17s (± 0.52%) 11.17s (± 0.40%) -0.01s (- 0.05%) 11.10s 11.26s
Monaco - node (v12.1.0, x64)
Memory used 323,851k (± 0.02%) 323,916k (± 0.02%) +65k (+ 0.02%) 323,792k 324,073k
Parse Time 1.43s (± 0.54%) 1.43s (± 0.53%) -0.00s (- 0.28%) 1.40s 1.44s
Bind Time 0.73s (± 0.71%) 0.72s (± 0.68%) -0.00s (- 0.69%) 0.71s 0.73s
Check Time 5.31s (± 0.48%) 5.31s (± 0.58%) -0.00s (- 0.08%) 5.25s 5.40s
Emit Time 3.21s (± 0.48%) 3.20s (± 0.77%) -0.01s (- 0.37%) 3.15s 3.26s
Total Time 10.68s (± 0.33%) 10.66s (± 0.38%) -0.02s (- 0.22%) 10.56s 10.75s
TFS - node (v12.1.0, x64)
Memory used 288,866k (± 0.02%) 288,845k (± 0.02%) -21k (- 0.01%) 288,755k 288,986k
Parse Time 1.21s (± 0.89%) 1.20s (± 0.74%) -0.01s (- 0.99%) 1.18s 1.22s
Bind Time 0.70s (± 0.43%) 0.70s (± 0.88%) +0.00s (+ 0.43%) 0.69s 0.71s
Check Time 4.91s (± 0.58%) 4.91s (± 0.60%) -0.00s (- 0.10%) 4.85s 4.99s
Emit Time 3.38s (± 0.50%) 3.38s (± 0.48%) +0.00s (+ 0.09%) 3.35s 3.43s
Total Time 10.19s (± 0.38%) 10.19s (± 0.32%) -0.01s (- 0.08%) 10.11s 10.25s
material-ui - node (v12.1.0, x64)
Memory used 447,642k (± 0.06%) 447,724k (± 0.01%) +82k (+ 0.02%) 447,574k 447,842k
Parse Time 1.73s (± 0.38%) 1.72s (± 0.57%) -0.01s (- 0.69%) 1.70s 1.74s
Bind Time 0.64s (± 0.81%) 0.65s (± 0.92%) +0.01s (+ 0.78%) 0.63s 0.66s
Check Time 12.85s (± 0.82%) 12.82s (± 0.58%) -0.03s (- 0.24%) 12.72s 13.09s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.22s (± 0.69%) 15.18s (± 0.47%) -0.04s (- 0.26%) 15.08s 15.44s
Angular - node (v14.15.1, x64)
Memory used 328,671k (± 0.04%) 328,818k (± 0.01%) +147k (+ 0.04%) 328,774k 328,857k
Parse Time 1.92s (± 0.58%) 1.91s (± 0.56%) -0.01s (- 0.57%) 1.88s 1.93s
Bind Time 0.87s (± 0.56%) 0.88s (± 1.01%) +0.00s (+ 0.34%) 0.86s 0.90s
Check Time 5.30s (± 0.32%) 5.31s (± 0.50%) +0.01s (+ 0.23%) 5.25s 5.35s
Emit Time 6.19s (± 0.79%) 6.18s (± 0.71%) -0.02s (- 0.24%) 6.09s 6.30s
Total Time 14.29s (± 0.41%) 14.27s (± 0.48%) -0.01s (- 0.08%) 14.12s 14.47s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,597k (± 0.37%) 192,605k (± 0.38%) +8k (+ 0.00%) 189,666k 192,978k
Parse Time 0.81s (± 0.86%) 0.81s (± 0.80%) -0.00s (- 0.37%) 0.80s 0.82s
Bind Time 0.55s (± 0.66%) 0.55s (± 0.41%) -0.01s (- 0.90%) 0.54s 0.55s
Check Time 7.52s (± 0.48%) 7.48s (± 0.53%) -0.04s (- 0.48%) 7.43s 7.61s
Emit Time 2.42s (± 0.87%) 2.44s (± 0.58%) +0.02s (+ 0.62%) 2.41s 2.46s
Total Time 11.31s (± 0.47%) 11.28s (± 0.37%) -0.03s (- 0.27%) 11.21s 11.39s
Monaco - node (v14.15.1, x64)
Memory used 322,624k (± 0.00%) 322,694k (± 0.00%) +70k (+ 0.02%) 322,663k 322,743k
Parse Time 1.49s (± 0.59%) 1.49s (± 0.55%) -0.00s (- 0.20%) 1.47s 1.51s
Bind Time 0.75s (± 0.63%) 0.75s (± 0.89%) -0.00s (- 0.40%) 0.74s 0.77s
Check Time 5.25s (± 0.27%) 5.27s (± 0.38%) +0.02s (+ 0.34%) 5.24s 5.33s
Emit Time 3.23s (± 0.85%) 3.20s (± 0.85%) -0.03s (- 0.99%) 3.16s 3.27s
Total Time 10.73s (± 0.39%) 10.71s (± 0.23%) -0.02s (- 0.19%) 10.66s 10.76s
TFS - node (v14.15.1, x64)
Memory used 287,787k (± 0.01%) 287,812k (± 0.01%) +25k (+ 0.01%) 287,786k 287,857k
Parse Time 1.24s (± 1.30%) 1.21s (± 0.67%) -0.03s (- 2.02%) 1.19s 1.23s
Bind Time 0.77s (± 4.77%) 0.81s (± 3.74%) +0.04s (+ 5.21%) 0.73s 0.86s
Check Time 4.87s (± 0.39%) 4.92s (± 0.55%) +0.04s (+ 0.90%) 4.87s 4.99s
Emit Time 3.45s (± 0.68%) 3.46s (± 0.50%) +0.01s (+ 0.32%) 3.41s 3.50s
Total Time 10.32s (± 0.46%) 10.39s (± 0.38%) +0.07s (+ 0.66%) 10.26s 10.45s
material-ui - node (v14.15.1, x64)
Memory used 446,142k (± 0.00%) 446,119k (± 0.00%) -23k (- 0.01%) 446,080k 446,142k
Parse Time 1.77s (± 0.51%) 1.76s (± 0.73%) -0.01s (- 0.40%) 1.73s 1.80s
Bind Time 0.70s (± 1.04%) 0.70s (± 0.85%) +0.01s (+ 1.00%) 0.70s 0.72s
Check Time 13.11s (± 0.66%) 12.97s (± 0.87%) -0.14s (- 1.08%) 12.81s 13.33s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.58s (± 0.52%) 15.44s (± 0.74%) -0.14s (- 0.92%) 15.28s 15.79s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory9 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 45974 10
Baseline main 10

Developer Information:

Download Benchmark

@a-tarasyuk a-tarasyuk force-pushed the fix/40617 branch 2 times, most recently from 7532268 to d62e104 Compare September 29, 2021 09:19
@sandersn sandersn added the Experiment A fork with an experimental idea which might not make it into master label Sep 29, 2021
@sandersn sandersn requested a review from weswigham September 29, 2021 19:24
@sandersn sandersn requested a review from gabritto September 29, 2021 19:24
src/compiler/checker.ts Outdated Show resolved Hide resolved
@a-tarasyuk a-tarasyuk force-pushed the fix/40617 branch 2 times, most recently from 674f8ac to f62eed2 Compare September 29, 2021 21:40
@DanielRosenwasser
Copy link
Member

@typescript-bot pack this
@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 14, 2022

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 14, 2022

Heya @DanielRosenwasser, I've started to run the tarball bundle task on this PR at 5a5a04a. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 14, 2022

Hey @DanielRosenwasser, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/120005/artifacts?artifactName=tgz&fileId=EE505446B5807332B826CBF47E7BCADCF9F3437137E46FBD2665ED222C83B2FD02&fileName=/typescript-4.7.0-insiders.20220214.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@4.7.0-pr-45974-15".;

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - main..45974

Metric main 45974 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 356,633k (± 0.02%) 356,706k (± 0.02%) +73k (+ 0.02%) 356,566k 356,861k
Parse Time 1.95s (± 0.46%) 1.96s (± 0.64%) +0.01s (+ 0.26%) 1.93s 1.98s
Bind Time 0.86s (± 0.80%) 0.86s (± 0.86%) +0.00s (+ 0.47%) 0.85s 0.88s
Check Time 5.71s (± 0.72%) 5.75s (± 0.37%) +0.05s (+ 0.81%) 5.70s 5.80s
Emit Time 5.93s (± 0.72%) 5.93s (± 0.89%) +0.01s (+ 0.17%) 5.88s 6.14s
Total Time 14.44s (± 0.55%) 14.51s (± 0.48%) +0.07s (+ 0.47%) 14.38s 14.75s
Compiler-Unions - node (v10.16.3, x64)
Memory used 204,383k (± 0.03%) 204,420k (± 0.03%) +37k (+ 0.02%) 204,290k 204,565k
Parse Time 0.79s (± 1.02%) 0.79s (± 1.22%) +0.00s (+ 0.13%) 0.77s 0.81s
Bind Time 0.52s (± 0.94%) 0.53s (± 1.58%) +0.00s (+ 0.19%) 0.50s 0.54s
Check Time 8.05s (± 0.35%) 8.09s (± 0.66%) +0.04s (+ 0.53%) 8.02s 8.28s
Emit Time 2.48s (± 0.79%) 2.48s (± 0.69%) -0.00s (- 0.16%) 2.44s 2.51s
Total Time 11.84s (± 0.29%) 11.88s (± 0.52%) +0.04s (+ 0.34%) 11.79s 12.10s
Monaco - node (v10.16.3, x64)
Memory used 343,189k (± 0.04%) 343,262k (± 0.02%) +73k (+ 0.02%) 343,018k 343,390k
Parse Time 1.48s (± 0.46%) 1.48s (± 0.68%) -0.01s (- 0.54%) 1.44s 1.49s
Bind Time 0.75s (± 0.53%) 0.76s (± 0.48%) +0.01s (+ 0.67%) 0.75s 0.76s
Check Time 5.62s (± 0.49%) 5.69s (± 0.58%) +0.07s (+ 1.24%) 5.62s 5.75s
Emit Time 3.23s (± 0.78%) 3.23s (± 1.10%) -0.00s (- 0.15%) 3.17s 3.30s
Total Time 11.09s (± 0.28%) 11.15s (± 0.26%) +0.06s (+ 0.58%) 11.09s 11.21s
TFS - node (v10.16.3, x64)
Memory used 304,951k (± 0.02%) 305,086k (± 0.03%) +135k (+ 0.04%) 304,945k 305,394k
Parse Time 1.20s (± 0.56%) 1.20s (± 0.43%) +0.00s (+ 0.17%) 1.19s 1.21s
Bind Time 0.72s (± 0.80%) 0.72s (± 0.69%) -0.00s (- 0.56%) 0.71s 0.73s
Check Time 5.16s (± 0.41%) 5.22s (± 0.38%) +0.06s (+ 1.16%) 5.19s 5.26s
Emit Time 3.41s (± 1.08%) 3.38s (± 1.35%) -0.03s (- 0.91%) 3.30s 3.50s
Total Time 10.49s (± 0.56%) 10.52s (± 0.45%) +0.03s (+ 0.30%) 10.42s 10.61s
material-ui - node (v10.16.3, x64)
Memory used 472,073k (± 0.02%) 471,983k (± 0.01%) -90k (- 0.02%) 471,800k 472,099k
Parse Time 1.78s (± 0.50%) 1.78s (± 0.47%) 0.00s ( 0.00%) 1.76s 1.79s
Bind Time 0.67s (± 1.31%) 0.67s (± 1.40%) 0.00s ( 0.00%) 0.65s 0.69s
Check Time 14.32s (± 0.46%) 14.34s (± 0.33%) +0.01s (+ 0.09%) 14.21s 14.42s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.77s (± 0.41%) 16.78s (± 0.30%) +0.02s (+ 0.10%) 16.63s 16.86s
xstate - node (v10.16.3, x64)
Memory used 570,728k (± 0.02%) 570,886k (± 0.01%) +159k (+ 0.03%) 570,757k 571,060k
Parse Time 2.55s (± 0.33%) 2.56s (± 0.51%) +0.01s (+ 0.20%) 2.53s 2.58s
Bind Time 1.01s (± 0.82%) 1.01s (± 0.57%) -0.00s (- 0.39%) 1.00s 1.02s
Check Time 1.52s (± 0.43%) 1.54s (± 0.46%) +0.02s (+ 1.12%) 1.53s 1.56s
Emit Time 0.07s (± 3.14%) 0.07s (± 3.14%) 0.00s ( 0.00%) 0.07s 0.08s
Total Time 5.15s (± 0.17%) 5.17s (± 0.42%) +0.02s (+ 0.43%) 5.12s 5.21s
Angular - node (v12.1.0, x64)
Memory used 334,134k (± 0.10%) 334,448k (± 0.02%) +314k (+ 0.09%) 334,313k 334,600k
Parse Time 1.95s (± 0.73%) 1.95s (± 0.61%) -0.00s (- 0.05%) 1.93s 1.99s
Bind Time 0.84s (± 0.62%) 0.85s (± 0.43%) +0.01s (+ 0.59%) 0.84s 0.85s
Check Time 5.53s (± 0.39%) 5.55s (± 0.53%) +0.02s (+ 0.34%) 5.48s 5.63s
Emit Time 6.21s (± 1.02%) 6.15s (± 0.57%) -0.06s (- 0.89%) 6.09s 6.23s
Total Time 14.53s (± 0.46%) 14.50s (± 0.44%) -0.03s (- 0.20%) 14.38s 14.66s
Compiler-Unions - node (v12.1.0, x64)
Memory used 191,719k (± 0.15%) 191,969k (± 0.02%) +250k (+ 0.13%) 191,875k 192,045k
Parse Time 0.78s (± 1.05%) 0.78s (± 0.85%) +0.00s (+ 0.39%) 0.77s 0.80s
Bind Time 0.53s (± 1.25%) 0.53s (± 0.68%) +0.00s (+ 0.19%) 0.53s 0.54s
Check Time 7.53s (± 0.31%) 7.59s (± 0.37%) +0.06s (+ 0.76%) 7.52s 7.64s
Emit Time 2.53s (± 0.87%) 2.52s (± 1.03%) -0.00s (- 0.08%) 2.48s 2.58s
Total Time 11.37s (± 0.39%) 11.42s (± 0.35%) +0.06s (+ 0.52%) 11.31s 11.52s
Monaco - node (v12.1.0, x64)
Memory used 326,201k (± 0.02%) 326,256k (± 0.01%) +55k (+ 0.02%) 326,153k 326,371k
Parse Time 1.47s (± 0.78%) 1.46s (± 0.68%) -0.01s (- 0.68%) 1.44s 1.49s
Bind Time 0.74s (± 0.70%) 0.74s (± 0.64%) +0.00s (+ 0.54%) 0.73s 0.75s
Check Time 5.51s (± 0.37%) 5.58s (± 0.62%) +0.07s (+ 1.36%) 5.51s 5.65s
Emit Time 3.23s (± 0.90%) 3.25s (± 0.69%) +0.02s (+ 0.53%) 3.18s 3.29s
Total Time 10.95s (± 0.35%) 11.03s (± 0.42%) +0.08s (+ 0.74%) 10.90s 11.11s
TFS - node (v12.1.0, x64)
Memory used 289,637k (± 0.02%) 289,730k (± 0.02%) +93k (+ 0.03%) 289,628k 289,842k
Parse Time 1.21s (± 0.66%) 1.21s (± 0.79%) +0.00s (+ 0.25%) 1.20s 1.24s
Bind Time 0.70s (± 0.93%) 0.70s (± 0.42%) +0.00s (+ 0.57%) 0.70s 0.71s
Check Time 5.08s (± 0.32%) 5.13s (± 0.45%) +0.05s (+ 1.00%) 5.08s 5.18s
Emit Time 3.43s (± 0.54%) 3.42s (± 0.96%) -0.00s (- 0.15%) 3.37s 3.52s
Total Time 10.41s (± 0.30%) 10.47s (± 0.53%) +0.06s (+ 0.54%) 10.37s 10.62s
material-ui - node (v12.1.0, x64)
Memory used 450,793k (± 0.05%) 450,809k (± 0.01%) +16k (+ 0.00%) 450,663k 450,886k
Parse Time 1.78s (± 0.57%) 1.78s (± 0.37%) -0.00s (- 0.06%) 1.77s 1.79s
Bind Time 0.64s (± 1.14%) 0.65s (± 0.56%) +0.01s (+ 1.25%) 0.64s 0.65s
Check Time 12.85s (± 0.58%) 12.86s (± 0.59%) +0.00s (+ 0.04%) 12.72s 13.06s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.27s (± 0.51%) 15.28s (± 0.50%) +0.01s (+ 0.08%) 15.14s 15.49s
xstate - node (v12.1.0, x64)
Memory used 536,689k (± 0.01%) 536,823k (± 0.01%) +133k (+ 0.02%) 536,635k 537,039k
Parse Time 2.49s (± 0.61%) 2.50s (± 0.44%) +0.01s (+ 0.20%) 2.48s 2.53s
Bind Time 1.05s (± 0.47%) 1.04s (± 0.96%) -0.00s (- 0.29%) 1.02s 1.07s
Check Time 1.46s (± 0.56%) 1.47s (± 0.65%) +0.01s (+ 0.75%) 1.46s 1.50s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.07s (± 0.32%) 5.08s (± 0.34%) +0.02s (+ 0.34%) 5.04s 5.12s
Angular - node (v14.15.1, x64)
Memory used 332,658k (± 0.01%) 332,711k (± 0.01%) +53k (+ 0.02%) 332,674k 332,744k
Parse Time 1.95s (± 0.42%) 1.95s (± 0.42%) 0.00s ( 0.00%) 1.93s 1.96s
Bind Time 0.89s (± 0.37%) 0.89s (± 0.33%) -0.00s (- 0.22%) 0.88s 0.89s
Check Time 5.52s (± 0.59%) 5.56s (± 0.34%) +0.03s (+ 0.58%) 5.52s 5.61s
Emit Time 6.20s (± 0.62%) 6.21s (± 0.83%) +0.01s (+ 0.08%) 6.13s 6.33s
Total Time 14.56s (± 0.44%) 14.59s (± 0.43%) +0.03s (+ 0.23%) 14.48s 14.78s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,117k (± 0.63%) 192,474k (± 0.62%) +357k (+ 0.19%) 190,507k 193,850k
Parse Time 0.81s (± 0.62%) 0.81s (± 0.42%) +0.00s (+ 0.25%) 0.80s 0.81s
Bind Time 0.56s (± 0.85%) 0.55s (± 0.86%) -0.00s (- 0.72%) 0.54s 0.56s
Check Time 7.58s (± 0.47%) 7.60s (± 0.62%) +0.02s (+ 0.20%) 7.51s 7.70s
Emit Time 2.48s (± 0.56%) 2.48s (± 0.85%) -0.00s (- 0.08%) 2.44s 2.53s
Total Time 11.43s (± 0.37%) 11.44s (± 0.48%) +0.02s (+ 0.17%) 11.31s 11.55s
Monaco - node (v14.15.1, x64)
Memory used 324,984k (± 0.00%) 325,029k (± 0.00%) +45k (+ 0.01%) 324,994k 325,058k
Parse Time 1.50s (± 0.39%) 1.50s (± 0.45%) +0.01s (+ 0.47%) 1.49s 1.52s
Bind Time 0.77s (± 0.52%) 0.77s (± 0.58%) -0.00s (- 0.13%) 0.76s 0.78s
Check Time 5.47s (± 0.60%) 5.52s (± 0.40%) +0.05s (+ 0.99%) 5.47s 5.57s
Emit Time 3.29s (± 0.64%) 3.27s (± 0.60%) -0.02s (- 0.46%) 3.24s 3.31s
Total Time 11.02s (± 0.39%) 11.07s (± 0.29%) +0.05s (+ 0.44%) 10.98s 11.13s
TFS - node (v14.15.1, x64)
Memory used 288,470k (± 0.01%) 288,555k (± 0.01%) +85k (+ 0.03%) 288,514k 288,636k
Parse Time 1.23s (± 0.59%) 1.23s (± 0.50%) -0.00s (- 0.08%) 1.22s 1.24s
Bind Time 0.74s (± 0.83%) 0.74s (± 0.30%) +0.00s (+ 0.27%) 0.74s 0.75s
Check Time 5.08s (± 0.41%) 5.14s (± 0.56%) +0.06s (+ 1.14%) 5.07s 5.21s
Emit Time 3.53s (± 0.96%) 3.56s (± 0.61%) +0.03s (+ 0.79%) 3.51s 3.61s
Total Time 10.58s (± 0.26%) 10.67s (± 0.47%) +0.09s (+ 0.85%) 10.58s 10.77s
material-ui - node (v14.15.1, x64)
Memory used 448,912k (± 0.00%) 448,933k (± 0.00%) +21k (+ 0.00%) 448,901k 448,971k
Parse Time 1.83s (± 0.30%) 1.83s (± 0.45%) +0.01s (+ 0.33%) 1.82s 1.86s
Bind Time 0.68s (± 0.70%) 0.70s (± 0.49%) +0.01s (+ 2.05%) 0.69s 0.70s
Check Time 12.92s (± 0.53%) 12.97s (± 0.46%) +0.05s (+ 0.39%) 12.85s 13.12s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.43s (± 0.44%) 15.50s (± 0.41%) +0.07s (+ 0.46%) 15.38s 15.66s
xstate - node (v14.15.1, x64)
Memory used 534,408k (± 0.01%) 534,473k (± 0.01%) +66k (+ 0.01%) 534,424k 534,602k
Parse Time 2.55s (± 0.42%) 2.56s (± 0.96%) +0.02s (+ 0.63%) 2.54s 2.66s
Bind Time 1.16s (± 0.57%) 1.16s (± 1.29%) -0.00s (- 0.26%) 1.13s 1.20s
Check Time 1.51s (± 0.31%) 1.52s (± 0.58%) +0.01s (+ 0.46%) 1.50s 1.54s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.30s (± 0.27%) 5.32s (± 0.57%) +0.01s (+ 0.26%) 5.26s 5.40s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory6 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 45974 10
Baseline main 10

Developer Information:

Download Benchmark

@sandersn
Copy link
Member

@weswigham @andrewbranch @DanielRosenwasser is this good to go into 4.7? Looks like we've got a recent performance run for it now.

@DanielRosenwasser
Copy link
Member

This is something I wanted to figure out - whether the check time increases on the most recent change are within the margin of error.

@weswigham
Copy link
Member

Between zero and seven hundreths of a second (depending on the test, mapping to between zero and one point four percent) sounds like noise if not noise-adjacent numbers to me.

@DanielRosenwasser
Copy link
Member

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 18, 2022

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - main..45974

Metric main 45974 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 356,736k (± 0.02%) 356,846k (± 0.02%) +110k (+ 0.03%) 356,706k 356,952k
Parse Time 2.04s (± 0.68%) 2.03s (± 0.41%) -0.01s (- 0.49%) 2.01s 2.05s
Bind Time 0.87s (± 1.22%) 0.86s (± 1.38%) -0.01s (- 0.92%) 0.84s 0.90s
Check Time 5.69s (± 0.61%) 5.69s (± 0.45%) +0.00s (+ 0.02%) 5.63s 5.76s
Emit Time 5.95s (± 0.64%) 5.91s (± 0.73%) -0.04s (- 0.64%) 5.85s 6.05s
Total Time 14.54s (± 0.48%) 14.48s (± 0.39%) -0.05s (- 0.37%) 14.38s 14.63s
Compiler-Unions - node (v10.16.3, x64)
Memory used 205,578k (± 0.03%) 205,550k (± 0.03%) -28k (- 0.01%) 205,434k 205,715k
Parse Time 0.83s (± 0.90%) 0.83s (± 0.54%) -0.01s (- 0.60%) 0.82s 0.84s
Bind Time 0.53s (± 1.82%) 0.53s (± 1.51%) -0.00s (- 0.56%) 0.51s 0.54s
Check Time 7.83s (± 0.76%) 7.84s (± 0.53%) +0.01s (+ 0.11%) 7.75s 7.91s
Emit Time 2.49s (± 0.59%) 2.49s (± 0.76%) +0.00s (+ 0.08%) 2.44s 2.53s
Total Time 11.69s (± 0.56%) 11.69s (± 0.38%) +0.00s (+ 0.03%) 11.59s 11.76s
Monaco - node (v10.16.3, x64)
Memory used 343,246k (± 0.03%) 343,222k (± 0.03%) -25k (- 0.01%) 342,965k 343,361k
Parse Time 1.55s (± 0.34%) 1.55s (± 0.75%) -0.00s (- 0.26%) 1.52s 1.57s
Bind Time 0.76s (± 0.59%) 0.76s (± 1.02%) +0.00s (+ 0.40%) 0.75s 0.78s
Check Time 5.60s (± 0.46%) 5.63s (± 0.54%) +0.03s (+ 0.50%) 5.57s 5.72s
Emit Time 3.23s (± 0.95%) 3.22s (± 0.95%) -0.00s (- 0.15%) 3.17s 3.33s
Total Time 11.13s (± 0.33%) 11.16s (± 0.31%) +0.03s (+ 0.26%) 11.09s 11.24s
TFS - node (v10.16.3, x64)
Memory used 305,057k (± 0.03%) 305,106k (± 0.02%) +49k (+ 0.02%) 304,978k 305,248k
Parse Time 1.27s (± 0.47%) 1.27s (± 0.60%) +0.00s (+ 0.08%) 1.26s 1.29s
Bind Time 0.71s (± 0.96%) 0.72s (± 0.95%) +0.00s (+ 0.14%) 0.71s 0.74s
Check Time 5.16s (± 0.32%) 5.18s (± 0.39%) +0.02s (+ 0.48%) 5.15s 5.23s
Emit Time 3.39s (± 1.33%) 3.38s (± 1.30%) -0.01s (- 0.29%) 3.32s 3.54s
Total Time 10.53s (± 0.52%) 10.55s (± 0.39%) +0.02s (+ 0.18%) 10.48s 10.68s
material-ui - node (v10.16.3, x64)
Memory used 468,833k (± 0.01%) 468,835k (± 0.02%) +2k (+ 0.00%) 468,748k 469,097k
Parse Time 1.81s (± 0.48%) 1.80s (± 0.37%) -0.01s (- 0.28%) 1.79s 1.82s
Bind Time 0.67s (± 0.74%) 0.68s (± 0.88%) +0.01s (+ 1.50%) 0.66s 0.69s
Check Time 14.09s (± 0.74%) 14.05s (± 0.34%) -0.04s (- 0.28%) 13.94s 14.14s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.56s (± 0.68%) 16.52s (± 0.32%) -0.04s (- 0.22%) 16.41s 16.62s
xstate - node (v10.16.3, x64)
Memory used 570,798k (± 0.01%) 570,748k (± 0.01%) -51k (- 0.01%) 570,611k 570,890k
Parse Time 2.58s (± 0.39%) 2.57s (± 0.22%) -0.00s (- 0.12%) 2.56s 2.59s
Bind Time 1.02s (± 0.87%) 1.01s (± 0.44%) -0.01s (- 1.17%) 1.00s 1.02s
Check Time 1.50s (± 0.59%) 1.50s (± 0.55%) -0.01s (- 0.47%) 1.48s 1.52s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.17s (± 0.30%) 5.14s (± 0.19%) -0.03s (- 0.54%) 5.12s 5.17s
Angular - node (v12.1.0, x64)
Memory used 334,588k (± 0.03%) 334,633k (± 0.02%) +46k (+ 0.01%) 334,484k 334,779k
Parse Time 2.03s (± 0.37%) 2.01s (± 0.47%) -0.01s (- 0.54%) 2.00s 2.04s
Bind Time 0.84s (± 0.40%) 0.83s (± 1.02%) -0.01s (- 1.07%) 0.81s 0.85s
Check Time 5.49s (± 0.65%) 5.50s (± 0.48%) +0.01s (+ 0.26%) 5.47s 5.59s
Emit Time 6.15s (± 0.53%) 6.16s (± 0.64%) +0.02s (+ 0.26%) 6.09s 6.26s
Total Time 14.50s (± 0.29%) 14.51s (± 0.34%) +0.01s (+ 0.08%) 14.39s 14.59s
Compiler-Unions - node (v12.1.0, x64)
Memory used 193,076k (± 0.08%) 193,218k (± 0.04%) +142k (+ 0.07%) 192,995k 193,320k
Parse Time 0.83s (± 0.63%) 0.83s (± 0.74%) 0.00s ( 0.00%) 0.82s 0.85s
Bind Time 0.54s (± 0.69%) 0.53s (± 1.32%) -0.00s (- 0.75%) 0.52s 0.55s
Check Time 7.36s (± 0.51%) 7.32s (± 0.46%) -0.04s (- 0.52%) 7.25s 7.40s
Emit Time 2.50s (± 1.22%) 2.49s (± 0.83%) -0.01s (- 0.52%) 2.44s 2.52s
Total Time 11.22s (± 0.42%) 11.17s (± 0.36%) -0.05s (- 0.49%) 11.07s 11.27s
Monaco - node (v12.1.0, x64)
Memory used 326,125k (± 0.08%) 326,111k (± 0.09%) -14k (- 0.00%) 325,364k 326,445k
Parse Time 1.54s (± 0.78%) 1.53s (± 0.58%) -0.01s (- 0.52%) 1.51s 1.55s
Bind Time 0.74s (± 1.00%) 0.74s (± 0.70%) -0.00s (- 0.14%) 0.73s 0.75s
Check Time 5.48s (± 0.67%) 5.52s (± 0.53%) +0.04s (+ 0.77%) 5.46s 5.57s
Emit Time 3.23s (± 1.09%) 3.23s (± 0.85%) +0.00s (+ 0.16%) 3.18s 3.31s
Total Time 10.98s (± 0.61%) 11.02s (± 0.43%) +0.04s (+ 0.39%) 10.94s 11.15s
TFS - node (v12.1.0, x64)
Memory used 289,778k (± 0.03%) 289,788k (± 0.02%) +10k (+ 0.00%) 289,674k 289,896k
Parse Time 1.29s (± 0.52%) 1.28s (± 0.74%) -0.01s (- 0.70%) 1.26s 1.30s
Bind Time 0.71s (± 1.22%) 0.71s (± 1.33%) -0.00s (- 0.14%) 0.69s 0.74s
Check Time 5.09s (± 0.68%) 5.11s (± 0.71%) +0.02s (+ 0.43%) 5.01s 5.17s
Emit Time 3.47s (± 0.84%) 3.43s (± 0.86%) -0.04s (- 1.09%) 3.37s 3.51s
Total Time 10.56s (± 0.55%) 10.54s (± 0.43%) -0.02s (- 0.23%) 10.44s 10.64s
material-ui - node (v12.1.0, x64)
Memory used 447,835k (± 0.07%) 447,816k (± 0.07%) -20k (- 0.00%) 446,616k 448,035k
Parse Time 1.80s (± 0.47%) 1.80s (± 0.43%) +0.00s (+ 0.11%) 1.78s 1.82s
Bind Time 0.64s (± 0.70%) 0.65s (± 0.56%) +0.01s (+ 1.25%) 0.64s 0.65s
Check Time 12.73s (± 0.78%) 12.69s (± 0.63%) -0.04s (- 0.28%) 12.58s 12.97s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.17s (± 0.67%) 15.14s (± 0.53%) -0.03s (- 0.20%) 15.03s 15.41s
xstate - node (v12.1.0, x64)
Memory used 536,868k (± 0.02%) 536,777k (± 0.02%) -91k (- 0.02%) 536,575k 536,954k
Parse Time 2.53s (± 0.54%) 2.53s (± 0.53%) +0.00s (+ 0.04%) 2.50s 2.57s
Bind Time 1.06s (± 0.64%) 1.04s (± 0.48%) -0.02s (- 1.89%) 1.03s 1.05s
Check Time 1.46s (± 0.78%) 1.46s (± 0.44%) +0.00s (+ 0.27%) 1.45s 1.48s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.11s (± 0.39%) 5.10s (± 0.32%) -0.01s (- 0.23%) 5.07s 5.14s
Angular - node (v14.15.1, x64)
Memory used 332,854k (± 0.01%) 332,921k (± 0.00%) +67k (+ 0.02%) 332,899k 332,954k
Parse Time 2.01s (± 0.40%) 2.02s (± 0.41%) +0.01s (+ 0.45%) 2.00s 2.03s
Bind Time 0.88s (± 0.70%) 0.88s (± 0.63%) +0.00s (+ 0.11%) 0.87s 0.89s
Check Time 5.51s (± 0.53%) 5.52s (± 0.32%) +0.01s (+ 0.18%) 5.49s 5.55s
Emit Time 6.21s (± 0.40%) 6.17s (± 0.68%) -0.03s (- 0.50%) 6.07s 6.29s
Total Time 14.61s (± 0.21%) 14.59s (± 0.35%) -0.02s (- 0.12%) 14.45s 14.74s
Compiler-Unions - node (v14.15.1, x64)
Memory used 194,326k (± 0.49%) 193,664k (± 0.61%) -662k (- 0.34%) 191,637k 195,027k
Parse Time 0.85s (± 0.61%) 0.85s (± 0.35%) +0.00s (+ 0.35%) 0.85s 0.86s
Bind Time 0.57s (± 0.66%) 0.56s (± 0.72%) -0.01s (- 1.06%) 0.55s 0.57s
Check Time 7.39s (± 0.46%) 7.36s (± 0.36%) -0.03s (- 0.41%) 7.30s 7.43s
Emit Time 2.47s (± 0.88%) 2.48s (± 0.69%) +0.01s (+ 0.24%) 2.45s 2.52s
Total Time 11.27s (± 0.46%) 11.25s (± 0.35%) -0.03s (- 0.23%) 11.15s 11.33s
Monaco - node (v14.15.1, x64)
Memory used 325,018k (± 0.00%) 325,096k (± 0.01%) +78k (+ 0.02%) 325,037k 325,140k
Parse Time 1.55s (± 0.54%) 1.55s (± 0.56%) -0.00s (- 0.06%) 1.53s 1.56s
Bind Time 0.77s (± 0.58%) 0.77s (± 0.84%) -0.00s (- 0.52%) 0.76s 0.78s
Check Time 5.38s (± 0.45%) 5.43s (± 0.51%) +0.04s (+ 0.78%) 5.39s 5.52s
Emit Time 3.27s (± 0.59%) 3.27s (± 1.08%) +0.00s (+ 0.03%) 3.21s 3.36s
Total Time 10.98s (± 0.37%) 11.02s (± 0.39%) +0.04s (+ 0.36%) 10.91s 11.12s
TFS - node (v14.15.1, x64)
Memory used 288,613k (± 0.01%) 288,642k (± 0.01%) +29k (+ 0.01%) 288,598k 288,683k
Parse Time 1.32s (± 2.62%) 1.30s (± 1.24%) -0.02s (- 1.36%) 1.28s 1.34s
Bind Time 0.73s (± 1.35%) 0.73s (± 1.11%) +0.00s (+ 0.14%) 0.72s 0.75s
Check Time 5.07s (± 0.44%) 5.08s (± 0.38%) +0.01s (+ 0.24%) 5.05s 5.14s
Emit Time 3.53s (± 1.46%) 3.51s (± 1.05%) -0.01s (- 0.40%) 3.39s 3.58s
Total Time 10.65s (± 0.50%) 10.63s (± 0.37%) -0.02s (- 0.22%) 10.52s 10.72s
material-ui - node (v14.15.1, x64)
Memory used 446,106k (± 0.07%) 445,966k (± 0.08%) -139k (- 0.03%) 444,947k 446,253k
Parse Time 1.85s (± 0.28%) 1.85s (± 0.26%) -0.00s (- 0.22%) 1.84s 1.86s
Bind Time 0.69s (± 0.84%) 0.70s (± 1.00%) +0.01s (+ 1.15%) 0.69s 0.72s
Check Time 12.80s (± 0.54%) 12.83s (± 0.78%) +0.03s (+ 0.23%) 12.63s 13.14s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.35s (± 0.44%) 15.38s (± 0.64%) +0.03s (+ 0.22%) 15.16s 15.68s
xstate - node (v14.15.1, x64)
Memory used 534,583k (± 0.01%) 534,601k (± 0.01%) +18k (+ 0.00%) 534,491k 534,692k
Parse Time 2.58s (± 0.52%) 2.57s (± 0.60%) -0.01s (- 0.23%) 2.54s 2.62s
Bind Time 1.16s (± 0.89%) 1.14s (± 0.57%) -0.02s (- 1.72%) 1.13s 1.16s
Check Time 1.49s (± 0.46%) 1.50s (± 0.48%) +0.01s (+ 0.54%) 1.49s 1.52s
Emit Time 0.07s (± 3.14%) 0.07s (± 0.00%) -0.00s (- 1.41%) 0.07s 0.07s
Total Time 5.31s (± 0.42%) 5.30s (± 0.28%) -0.01s (- 0.21%) 5.28s 5.34s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory5 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 45974 10
Baseline main 10

Developer Information:

Download Benchmark

@andrewbranch
Copy link
Member

Yeah, this second run makes it look more like noise. We see check time decrease on some and then increase on the same repo with a different Node version.

@sandersn
Copy link
Member

From the design meeting:

  1. If you look only at check time, there is a small, consistent increase, about 0.7%.
  2. We are still likely to take this because we believe that computed properties are being used more over time.
  3. Anders wants to take a look at the code before merging.

@ethanresnick
Copy link
Contributor

Weighing in as one user: supporting symbol-named properties in CFA (without temporary variables) seems very nice and is definitely what I would expect. For me, it's easily worth this tiny performance penalty, though I probably like/use symbol named properties more than many.

@weswigham weswigham merged commit 162713f into microsoft:main Mar 5, 2022
@kyliau
Copy link
Contributor

kyliau commented Apr 20, 2022

(happy to move this to a new issue)

If I read the release blog post correctly, the following test case should work, but it still produces an error.

interface Foo {
  [key: string]: number | string;
}

declare function generateKey(): string;

function fn(foo: Foo) {
  const key = generateKey();
  if (typeof foo[key] === 'number') {
    foo[key].toExponential(2);
    // Error: Property 'toExponential' does not exist on type 'string | number'.
  }
}

Is this a bug?

TS Playground Link v4.7.0-dev.20220420

@jakebailey
Copy link
Member

I'd definitely file that as a separate issue, otherwise we're not going to be able to track or discuss it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Experiment A fork with an experimental idea which might not make it into master For Backlog Bug PRs that fix a backlog bug
Projects
Archived in project