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

Refactor emit substitution into transform #42676

Merged
merged 8 commits into from
Feb 26, 2021
Merged

Refactor emit substitution into transform #42676

merged 8 commits into from
Feb 26, 2021

Conversation

rbuckton
Copy link
Member

@rbuckton rbuckton commented Feb 6, 2021

#41156 was only a temporary fix for #39022 as it always wraps the expression in parentheses, even when they are not needed. It has been a longstanding issue that emit substitution does not trigger our auto-parenthesization logic because we don't recreate the node as we emit.

To address this, I've pulled out the logic in the printer that handles our JIT substitution into its own transformation. As a result, substitution now uses the Node Factory and correctly handles auto-parenthesization. This has a number of other benefits as well:

  • The entire emit notification/substitution flow can be skipped when it isn't needed (i.e., typeToTypeNode, refactors, etc.).
  • The stack depth for printing has been reduced significantly.
  • Printing is more straightforward (the "emit pipeline" has been drastically simplified).

Fixes #39022

@rbuckton
Copy link
Member Author

rbuckton commented Feb 6, 2021

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 6, 2021

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

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 6, 2021

Heya @rbuckton, I've started to run the parallelized community code test suite on this PR at d3b8d5e. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 6, 2021

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

@rbuckton
Copy link
Member Author

rbuckton commented Feb 6, 2021

@weswigham has something changed for the perf test trigger for the bot? It's not responding to perf test anymore.

@rbuckton
Copy link
Member Author

rbuckton commented Feb 6, 2021

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 6, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master.

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 345,596k (± 0.01%) 346,007k (± 0.02%) +412k (+ 0.12%) 345,809k 346,142k
Parse Time 1.93s (± 0.76%) 1.93s (± 0.94%) +0.00s (+ 0.21%) 1.89s 1.96s
Bind Time 0.83s (± 1.16%) 0.82s (± 0.70%) -0.01s (- 0.72%) 0.81s 0.84s
Check Time 4.96s (± 0.64%) 4.98s (± 0.55%) +0.02s (+ 0.38%) 4.91s 5.02s
Emit Time 5.27s (± 0.81%) 5.56s (± 0.74%) +0.29s (+ 5.60%) 5.47s 5.64s
Total Time 12.98s (± 0.63%) 13.29s (± 0.60%) +0.31s (+ 2.40%) 13.09s 13.44s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,377k (± 0.08%) 215,029k (± 0.02%) +652k (+ 0.30%) 214,911k 215,123k
Parse Time 0.78s (± 0.61%) 0.77s (± 0.77%) -0.00s (- 0.39%) 0.76s 0.79s
Bind Time 0.50s (± 1.45%) 0.50s (± 0.94%) -0.00s (- 0.40%) 0.49s 0.51s
Check Time 10.65s (± 0.55%) 10.64s (± 0.72%) -0.00s (- 0.05%) 10.52s 10.86s
Emit Time 2.34s (± 1.94%) 2.46s (± 0.71%) +0.12s (+ 5.13%) 2.42s 2.50s
Total Time 14.27s (± 0.63%) 14.38s (± 0.55%) +0.11s (+ 0.74%) 14.21s 14.60s
Monaco - node (v10.16.3, x64)
Memory used 355,241k (± 0.03%) 355,573k (± 0.02%) +332k (+ 0.09%) 355,420k 355,719k
Parse Time 1.55s (± 0.50%) 1.55s (± 0.91%) +0.00s (+ 0.13%) 1.52s 1.59s
Bind Time 0.73s (± 1.04%) 0.72s (± 0.55%) -0.01s (- 0.69%) 0.71s 0.73s
Check Time 5.12s (± 0.66%) 5.15s (± 0.46%) +0.03s (+ 0.61%) 5.09s 5.22s
Emit Time 2.81s (± 1.08%) 2.98s (± 0.73%) +0.16s (+ 5.83%) 2.93s 3.02s
Total Time 10.21s (± 0.44%) 10.40s (± 0.35%) +0.19s (+ 1.90%) 10.29s 10.47s
TFS - node (v10.16.3, x64)
Memory used 308,147k (± 0.02%) 308,446k (± 0.01%) +299k (+ 0.10%) 308,383k 308,599k
Parse Time 1.21s (± 0.55%) 1.21s (± 0.58%) -0.00s (- 0.08%) 1.19s 1.22s
Bind Time 0.68s (± 0.65%) 0.68s (± 0.59%) -0.00s (- 0.15%) 0.67s 0.69s
Check Time 4.60s (± 0.50%) 4.63s (± 0.50%) +0.04s (+ 0.76%) 4.58s 4.70s
Emit Time 2.96s (± 0.87%) 3.06s (± 1.04%) +0.10s (+ 3.48%) 2.98s 3.10s
Total Time 9.45s (± 0.41%) 9.59s (± 0.51%) +0.14s (+ 1.43%) 9.45s 9.70s
material-ui - node (v10.16.3, x64)
Memory used 495,587k (± 0.01%) 495,756k (± 0.01%) +169k (+ 0.03%) 495,602k 495,905k
Parse Time 1.98s (± 0.82%) 2.00s (± 0.58%) +0.01s (+ 0.66%) 1.98s 2.03s
Bind Time 0.66s (± 0.76%) 0.66s (± 1.05%) 0.00s ( 0.00%) 0.64s 0.67s
Check Time 14.04s (± 0.81%) 13.98s (± 0.72%) -0.06s (- 0.43%) 13.80s 14.20s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.68s (± 0.75%) 16.63s (± 0.59%) -0.05s (- 0.29%) 16.43s 16.84s
Angular - node (v12.1.0, x64)
Memory used 323,221k (± 0.01%) 323,663k (± 0.02%) +442k (+ 0.14%) 323,515k 323,791k
Parse Time 1.91s (± 0.43%) 1.90s (± 0.80%) -0.01s (- 0.42%) 1.88s 1.95s
Bind Time 0.80s (± 0.93%) 0.80s (± 0.75%) -0.00s (- 0.50%) 0.78s 0.81s
Check Time 4.85s (± 0.53%) 4.88s (± 0.34%) +0.03s (+ 0.70%) 4.84s 4.91s
Emit Time 5.47s (± 1.46%) 5.55s (± 1.29%) +0.08s (+ 1.46%) 5.44s 5.80s
Total Time 13.03s (± 0.54%) 13.13s (± 0.65%) +0.10s (+ 0.81%) 13.00s 13.42s
Compiler-Unions - node (v12.1.0, x64)
Memory used 199,817k (± 0.09%) 200,335k (± 0.07%) +519k (+ 0.26%) 199,933k 200,602k
Parse Time 0.77s (± 0.91%) 0.77s (± 0.72%) -0.00s (- 0.39%) 0.75s 0.78s
Bind Time 0.50s (± 0.80%) 0.50s (± 1.11%) +0.00s (+ 0.20%) 0.49s 0.52s
Check Time 9.72s (± 0.92%) 9.81s (± 1.34%) +0.09s (+ 0.89%) 9.60s 10.09s
Emit Time 2.35s (± 1.50%) 2.43s (± 0.67%) +0.09s (+ 3.75%) 2.40s 2.48s
Total Time 13.34s (± 0.69%) 13.51s (± 0.99%) +0.18s (+ 1.31%) 13.29s 13.78s
Monaco - node (v12.1.0, x64)
Memory used 337,612k (± 0.03%) 337,855k (± 0.03%) +243k (+ 0.07%) 337,658k 338,089k
Parse Time 1.53s (± 0.78%) 1.53s (± 1.11%) -0.01s (- 0.46%) 1.50s 1.57s
Bind Time 0.71s (± 0.85%) 0.70s (± 0.63%) -0.00s (- 0.43%) 0.69s 0.71s
Check Time 4.93s (± 0.80%) 4.92s (± 0.60%) -0.02s (- 0.36%) 4.87s 4.99s
Emit Time 2.87s (± 0.98%) 2.96s (± 0.85%) +0.09s (+ 2.99%) 2.90s 3.00s
Total Time 10.05s (± 0.58%) 10.10s (± 0.54%) +0.06s (+ 0.56%) 9.99s 10.24s
TFS - node (v12.1.0, x64)
Memory used 292,323k (± 0.02%) 292,684k (± 0.02%) +361k (+ 0.12%) 292,596k 292,829k
Parse Time 1.23s (± 0.56%) 1.22s (± 1.07%) -0.00s (- 0.33%) 1.19s 1.26s
Bind Time 0.66s (± 0.68%) 0.66s (± 1.18%) +0.00s (+ 0.15%) 0.65s 0.68s
Check Time 4.51s (± 0.56%) 4.55s (± 0.39%) +0.03s (+ 0.71%) 4.50s 4.58s
Emit Time 2.96s (± 1.94%) 3.01s (± 0.81%) +0.04s (+ 1.42%) 2.95s 3.06s
Total Time 9.36s (± 0.80%) 9.43s (± 0.41%) +0.07s (+ 0.78%) 9.34s 9.49s
material-ui - node (v12.1.0, x64)
Memory used 472,781k (± 0.01%) 472,818k (± 0.08%) +37k (+ 0.01%) 471,995k 473,368k
Parse Time 2.00s (± 0.82%) 2.00s (± 0.47%) -0.00s (- 0.05%) 1.99s 2.03s
Bind Time 0.64s (± 0.69%) 0.65s (± 0.77%) +0.00s (+ 0.47%) 0.63s 0.65s
Check Time 12.54s (± 0.61%) 12.65s (± 1.19%) +0.11s (+ 0.85%) 12.38s 13.02s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.19s (± 0.52%) 15.30s (± 0.97%) +0.11s (+ 0.71%) 15.02s 15.67s
Angular - node (v14.15.1, x64)
Memory used 321,864k (± 0.01%) 322,320k (± 0.01%) +456k (+ 0.14%) 322,192k 322,400k
Parse Time 1.91s (± 0.49%) 1.91s (± 0.61%) -0.00s (- 0.10%) 1.88s 1.94s
Bind Time 0.85s (± 0.53%) 0.85s (± 0.78%) +0.00s (+ 0.24%) 0.83s 0.86s
Check Time 4.85s (± 0.39%) 4.89s (± 0.61%) +0.03s (+ 0.68%) 4.83s 4.96s
Emit Time 5.47s (± 0.20%) 5.55s (± 0.67%) +0.08s (+ 1.39%) 5.49s 5.66s
Total Time 13.08s (± 0.15%) 13.19s (± 0.37%) +0.11s (+ 0.83%) 13.09s 13.34s
Compiler-Unions - node (v14.15.1, x64)
Memory used 200,440k (± 0.56%) 199,823k (± 0.13%) -617k (- 0.31%) 199,521k 200,288k
Parse Time 0.80s (± 0.60%) 0.80s (± 0.43%) 0.00s ( 0.00%) 0.79s 0.80s
Bind Time 0.53s (± 0.76%) 0.53s (± 0.42%) 0.00s ( 0.00%) 0.52s 0.53s
Check Time 9.68s (± 0.78%) 9.72s (± 0.75%) +0.04s (+ 0.36%) 9.55s 9.87s
Emit Time 2.36s (± 1.24%) 2.46s (± 1.48%) +0.10s (+ 4.41%) 2.39s 2.54s
Total Time 13.36s (± 0.64%) 13.51s (± 0.74%) +0.14s (+ 1.06%) 13.31s 13.70s
Monaco - node (v14.15.1, x64)
Memory used 336,824k (± 0.00%) 337,045k (± 0.01%) +221k (+ 0.07%) 336,990k 337,086k
Parse Time 1.57s (± 0.57%) 1.57s (± 0.77%) -0.00s (- 0.06%) 1.54s 1.59s
Bind Time 0.73s (± 1.06%) 0.73s (± 1.16%) -0.00s (- 0.27%) 0.72s 0.76s
Check Time 4.85s (± 0.47%) 4.88s (± 0.33%) +0.03s (+ 0.64%) 4.85s 4.92s
Emit Time 2.91s (± 0.68%) 2.93s (± 0.23%) +0.03s (+ 0.93%) 2.92s 2.95s
Total Time 10.06s (± 0.34%) 10.11s (± 0.30%) +0.05s (+ 0.53%) 10.07s 10.19s
TFS - node (v14.15.1, x64)
Memory used 291,545k (± 0.01%) 291,775k (± 0.01%) +230k (+ 0.08%) 291,734k 291,803k
Parse Time 1.25s (± 1.03%) 1.27s (± 1.05%) +0.01s (+ 1.04%) 1.25s 1.30s
Bind Time 0.69s (± 0.86%) 0.69s (± 0.90%) -0.01s (- 0.72%) 0.68s 0.71s
Check Time 4.49s (± 0.36%) 4.52s (± 0.29%) +0.02s (+ 0.53%) 4.49s 4.54s
Emit Time 3.04s (± 0.94%) 3.01s (± 0.57%) -0.03s (- 0.86%) 2.97s 3.05s
Total Time 9.48s (± 0.30%) 9.49s (± 0.23%) +0.01s (+ 0.09%) 9.43s 9.53s
material-ui - node (v14.15.1, x64)
Memory used 471,451k (± 0.06%) 471,703k (± 0.01%) +252k (+ 0.05%) 471,647k 471,779k
Parse Time 2.06s (± 0.46%) 2.06s (± 0.87%) +0.01s (+ 0.39%) 2.02s 2.10s
Bind Time 0.70s (± 0.67%) 0.70s (± 0.47%) 0.00s ( 0.00%) 0.69s 0.71s
Check Time 12.67s (± 1.39%) 12.57s (± 0.40%) -0.10s (- 0.80%) 12.47s 12.69s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.42s (± 1.15%) 15.33s (± 0.33%) -0.09s (- 0.58%) 15.24s 15.46s
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 42676 10
Baseline master 10

@rbuckton
Copy link
Member Author

rbuckton commented Feb 7, 2021

It looks like preprint adds a small amount of time to emit (since we would now have to do two full tree walks). I need to iterate on this a bit to see if there's any way to improve this.

Copy link
Member

@weswigham weswigham left a comment

Choose a reason for hiding this comment

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

Overall this looks pretty good - the main emit part of the emitter gets a bit simpler, at least. I'm not a massive fan of the Debug.type casts (simply because we'd have to write extra tooling to flag them as extraneous if/when we use a union of Node, since we are getting closer to that having acceptable editor perf with some changes this release), but 🤷‍♀️. Ping me again if in looking at improving the perf of the preprinter the implementation changes a bunch.

src/compiler/emitter.ts Show resolved Hide resolved
src/compiler/emitter.ts Outdated Show resolved Hide resolved
src/compiler/emitter.ts Outdated Show resolved Hide resolved
src/compiler/factory/utilities.ts Show resolved Hide resolved
src/compiler/types.ts Show resolved Hide resolved
@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 23, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 345,982k (± 0.02%) 346,268k (± 0.04%) +286k (+ 0.08%) 346,044k 346,591k
Parse Time 1.91s (± 0.65%) 1.91s (± 0.44%) -0.00s (- 0.16%) 1.89s 1.93s
Bind Time 0.82s (± 0.58%) 0.83s (± 0.69%) +0.01s (+ 0.85%) 0.82s 0.84s
Check Time 4.92s (± 0.51%) 4.96s (± 0.26%) +0.04s (+ 0.81%) 4.93s 4.98s
Emit Time 5.24s (± 0.62%) 5.78s (± 0.55%) +0.54s (+10.33%) 5.71s 5.83s
Total Time 12.90s (± 0.38%) 13.48s (± 0.22%) +0.58s (+ 4.51%) 13.38s 13.53s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,582k (± 0.03%) 215,084k (± 0.09%) +502k (+ 0.23%) 214,580k 215,287k
Parse Time 0.77s (± 0.77%) 0.77s (± 0.64%) 0.00s ( 0.00%) 0.76s 0.78s
Bind Time 0.51s (± 1.27%) 0.50s (± 1.51%) -0.00s (- 0.59%) 0.49s 0.52s
Check Time 10.71s (± 0.70%) 10.67s (± 0.93%) -0.04s (- 0.38%) 10.54s 10.98s
Emit Time 2.38s (± 2.19%) 2.44s (± 0.97%) +0.06s (+ 2.73%) 2.38s 2.48s
Total Time 14.37s (± 0.46%) 14.39s (± 0.68%) +0.02s (+ 0.13%) 14.22s 14.68s
Monaco - node (v10.16.3, x64)
Memory used 355,234k (± 0.02%) 355,622k (± 0.03%) +387k (+ 0.11%) 355,441k 355,855k
Parse Time 1.54s (± 0.39%) 1.55s (± 0.42%) +0.01s (+ 0.45%) 1.54s 1.57s
Bind Time 0.72s (± 0.62%) 0.73s (± 0.64%) +0.01s (+ 1.67%) 0.72s 0.74s
Check Time 5.09s (± 0.38%) 5.11s (± 0.62%) +0.01s (+ 0.27%) 5.05s 5.21s
Emit Time 2.78s (± 0.91%) 3.08s (± 0.69%) +0.29s (+10.49%) 3.04s 3.14s
Total Time 10.14s (± 0.38%) 10.46s (± 0.52%) +0.32s (+ 3.19%) 10.38s 10.65s
TFS - node (v10.16.3, x64)
Memory used 308,174k (± 0.01%) 308,519k (± 0.01%) +345k (+ 0.11%) 308,476k 308,582k
Parse Time 1.20s (± 0.41%) 1.20s (± 0.57%) -0.00s (- 0.08%) 1.19s 1.22s
Bind Time 0.68s (± 0.65%) 0.68s (± 0.50%) +0.00s (+ 0.15%) 0.68s 0.69s
Check Time 4.57s (± 0.38%) 4.63s (± 0.79%) +0.06s (+ 1.29%) 4.57s 4.71s
Emit Time 2.92s (± 0.78%) 3.17s (± 0.67%) +0.26s (+ 8.74%) 3.13s 3.22s
Total Time 9.38s (± 0.33%) 9.69s (± 0.40%) +0.31s (+ 3.33%) 9.61s 9.78s
material-ui - node (v10.16.3, x64)
Memory used 495,566k (± 0.01%) 495,863k (± 0.02%) +296k (+ 0.06%) 495,678k 496,035k
Parse Time 1.98s (± 0.58%) 1.99s (± 0.38%) +0.01s (+ 0.40%) 1.97s 2.01s
Bind Time 0.64s (± 0.46%) 0.65s (± 0.62%) +0.01s (+ 1.09%) 0.64s 0.66s
Check Time 13.90s (± 0.54%) 13.88s (± 0.38%) -0.01s (- 0.09%) 13.80s 14.06s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.52s (± 0.48%) 16.52s (± 0.30%) +0.01s (+ 0.04%) 16.46s 16.70s
Angular - node (v12.1.0, x64)
Memory used 323,510k (± 0.10%) 324,199k (± 0.02%) +689k (+ 0.21%) 324,000k 324,375k
Parse Time 1.91s (± 0.65%) 1.90s (± 0.81%) -0.01s (- 0.37%) 1.87s 1.94s
Bind Time 0.80s (± 0.91%) 0.81s (± 0.64%) +0.01s (+ 0.87%) 0.80s 0.82s
Check Time 4.91s (± 1.07%) 4.86s (± 0.72%) -0.05s (- 1.02%) 4.80s 4.94s
Emit Time 5.44s (± 0.91%) 5.76s (± 0.53%) +0.32s (+ 5.86%) 5.70s 5.85s
Total Time 13.06s (± 0.51%) 13.33s (± 0.48%) +0.27s (+ 2.07%) 13.24s 13.53s
Compiler-Unions - node (v12.1.0, x64)
Memory used 200,093k (± 0.04%) 200,606k (± 0.05%) +513k (+ 0.26%) 200,309k 200,737k
Parse Time 0.77s (± 0.97%) 0.76s (± 1.02%) -0.01s (- 0.78%) 0.75s 0.78s
Bind Time 0.51s (± 0.97%) 0.52s (± 0.71%) +0.01s (+ 1.98%) 0.51s 0.52s
Check Time 9.70s (± 0.65%) 9.68s (± 0.80%) -0.02s (- 0.19%) 9.51s 9.92s
Emit Time 2.35s (± 0.95%) 2.43s (± 1.22%) +0.08s (+ 3.37%) 2.39s 2.50s
Total Time 13.31s (± 0.52%) 13.38s (± 0.51%) +0.07s (+ 0.51%) 13.28s 13.60s
Monaco - node (v12.1.0, x64)
Memory used 337,563k (± 0.02%) 338,172k (± 0.04%) +609k (+ 0.18%) 338,062k 338,638k
Parse Time 1.52s (± 0.62%) 1.53s (± 0.87%) +0.01s (+ 0.46%) 1.50s 1.56s
Bind Time 0.70s (± 0.74%) 0.71s (± 0.78%) +0.01s (+ 1.29%) 0.70s 0.72s
Check Time 4.91s (± 0.55%) 4.92s (± 0.53%) +0.01s (+ 0.26%) 4.85s 4.96s
Emit Time 2.84s (± 0.85%) 3.08s (± 0.52%) +0.24s (+ 8.37%) 3.05s 3.11s
Total Time 9.98s (± 0.45%) 10.24s (± 0.41%) +0.26s (+ 2.65%) 10.13s 10.31s
TFS - node (v12.1.0, x64)
Memory used 292,371k (± 0.03%) 292,750k (± 0.01%) +379k (+ 0.13%) 292,693k 292,822k
Parse Time 1.22s (± 0.54%) 1.22s (± 0.82%) -0.00s (- 0.00%) 1.19s 1.23s
Bind Time 0.66s (± 1.02%) 0.67s (± 0.60%) +0.01s (+ 1.83%) 0.66s 0.68s
Check Time 4.51s (± 0.54%) 4.51s (± 0.42%) +0.00s (+ 0.04%) 4.47s 4.56s
Emit Time 2.93s (± 0.76%) 3.07s (± 0.70%) +0.14s (+ 4.64%) 3.02s 3.12s
Total Time 9.32s (± 0.39%) 9.47s (± 0.33%) +0.15s (+ 1.62%) 9.41s 9.56s
material-ui - node (v12.1.0, x64)
Memory used 472,641k (± 0.06%) 473,211k (± 0.06%) +569k (+ 0.12%) 472,194k 473,450k
Parse Time 1.99s (± 0.51%) 1.99s (± 0.72%) +0.00s (+ 0.00%) 1.96s 2.02s
Bind Time 0.63s (± 0.94%) 0.64s (± 0.75%) +0.00s (+ 0.47%) 0.63s 0.65s
Check Time 12.46s (± 0.72%) 12.43s (± 0.62%) -0.03s (- 0.25%) 12.28s 12.71s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.09s (± 0.63%) 15.06s (± 0.50%) -0.03s (- 0.21%) 14.94s 15.34s
Angular - node (v14.15.1, x64)
Memory used 322,334k (± 0.01%) 322,853k (± 0.02%) +520k (+ 0.16%) 322,745k 322,955k
Parse Time 1.90s (± 0.63%) 1.91s (± 0.43%) +0.00s (+ 0.21%) 1.89s 1.93s
Bind Time 0.85s (± 0.96%) 0.85s (± 0.56%) +0.00s (+ 0.35%) 0.84s 0.86s
Check Time 4.82s (± 0.43%) 4.83s (± 0.52%) +0.02s (+ 0.33%) 4.79s 4.91s
Emit Time 5.46s (± 0.49%) 5.82s (± 0.48%) +0.37s (+ 6.69%) 5.76s 5.89s
Total Time 13.03s (± 0.32%) 13.41s (± 0.30%) +0.39s (+ 2.98%) 13.36s 13.51s
Compiler-Unions - node (v14.15.1, x64)
Memory used 200,834k (± 0.65%) 200,125k (± 0.12%) -709k (- 0.35%) 199,601k 200,374k
Parse Time 0.80s (± 0.73%) 0.80s (± 0.73%) 0.00s ( 0.00%) 0.79s 0.81s
Bind Time 0.53s (± 0.75%) 0.55s (± 0.67%) +0.01s (+ 2.82%) 0.54s 0.55s
Check Time 9.71s (± 0.59%) 9.68s (± 0.54%) -0.03s (- 0.32%) 9.53s 9.80s
Emit Time 2.38s (± 1.63%) 2.46s (± 1.13%) +0.08s (+ 3.53%) 2.41s 2.52s
Total Time 13.41s (± 0.59%) 13.48s (± 0.47%) +0.07s (+ 0.54%) 13.35s 13.67s
Monaco - node (v14.15.1, x64)
Memory used 336,866k (± 0.00%) 337,137k (± 0.01%) +271k (+ 0.08%) 337,085k 337,181k
Parse Time 1.56s (± 0.30%) 1.56s (± 0.71%) +0.00s (+ 0.19%) 1.54s 1.59s
Bind Time 0.73s (± 0.65%) 0.74s (± 1.10%) +0.02s (+ 2.20%) 0.73s 0.77s
Check Time 4.84s (± 0.35%) 4.86s (± 0.48%) +0.02s (+ 0.41%) 4.81s 4.91s
Emit Time 2.91s (± 0.36%) 3.08s (± 0.31%) +0.18s (+ 6.05%) 3.06s 3.10s
Total Time 10.04s (± 0.15%) 10.25s (± 0.33%) +0.22s (+ 2.15%) 10.20s 10.33s
TFS - node (v14.15.1, x64)
Memory used 291,564k (± 0.01%) 291,815k (± 0.01%) +250k (+ 0.09%) 291,772k 291,860k
Parse Time 1.25s (± 0.99%) 1.25s (± 1.16%) +0.01s (+ 0.56%) 1.23s 1.29s
Bind Time 0.69s (± 0.75%) 0.70s (± 0.84%) +0.01s (+ 1.88%) 0.70s 0.72s
Check Time 4.50s (± 0.39%) 4.54s (± 0.35%) +0.04s (+ 0.78%) 4.51s 4.57s
Emit Time 3.05s (± 0.43%) 3.12s (± 0.40%) +0.07s (+ 2.26%) 3.10s 3.15s
Total Time 9.49s (± 0.17%) 9.61s (± 0.37%) +0.12s (+ 1.26%) 9.57s 9.72s
material-ui - node (v14.15.1, x64)
Memory used 471,540k (± 0.00%) 471,654k (± 0.03%) +114k (+ 0.02%) 471,103k 471,758k
Parse Time 2.05s (± 0.70%) 2.05s (± 0.52%) +0.00s (+ 0.15%) 2.03s 2.07s
Bind Time 0.69s (± 0.89%) 0.69s (± 0.96%) -0.00s (- 0.14%) 0.68s 0.70s
Check Time 12.49s (± 0.47%) 12.54s (± 0.40%) +0.05s (+ 0.38%) 12.44s 12.68s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.24s (± 0.41%) 15.29s (± 0.32%) +0.05s (+ 0.32%) 15.21s 15.44s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory7 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 42676 10
Baseline master 10

@rbuckton
Copy link
Member Author

Hmm. The updated state machine seems slower, which may be due to using a linked list as opposed to parallel arrays. I may need to tinker with the implementation a bit more.

@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 23, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 345,990k (± 0.02%) 346,312k (± 0.06%) +322k (+ 0.09%) 346,000k 346,800k
Parse Time 1.93s (± 0.63%) 1.91s (± 0.56%) -0.01s (- 0.52%) 1.89s 1.94s
Bind Time 0.82s (± 0.86%) 0.83s (± 0.57%) +0.01s (+ 1.71%) 0.82s 0.84s
Check Time 4.95s (± 0.44%) 4.97s (± 0.44%) +0.02s (+ 0.46%) 4.93s 5.01s
Emit Time 5.25s (± 0.51%) 5.80s (± 0.96%) +0.55s (+10.46%) 5.69s 5.91s
Total Time 12.94s (± 0.33%) 13.52s (± 0.50%) +0.58s (+ 4.44%) 13.36s 13.66s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,609k (± 0.07%) 215,173k (± 0.03%) +564k (+ 0.26%) 215,082k 215,346k
Parse Time 0.78s (± 0.88%) 0.78s (± 0.57%) +0.00s (+ 0.26%) 0.77s 0.79s
Bind Time 0.50s (± 0.98%) 0.52s (± 0.90%) +0.02s (+ 3.17%) 0.51s 0.53s
Check Time 10.70s (± 0.63%) 10.61s (± 0.72%) -0.09s (- 0.85%) 10.49s 10.82s
Emit Time 2.34s (± 1.53%) 2.48s (± 1.15%) +0.14s (+ 6.02%) 2.44s 2.58s
Total Time 14.32s (± 0.64%) 14.38s (± 0.72%) +0.07s (+ 0.46%) 14.22s 14.70s
Monaco - node (v10.16.3, x64)
Memory used 355,332k (± 0.02%) 355,689k (± 0.04%) +358k (+ 0.10%) 355,307k 355,945k
Parse Time 1.55s (± 0.69%) 1.55s (± 0.49%) -0.00s (- 0.19%) 1.53s 1.57s
Bind Time 0.72s (± 0.72%) 0.73s (± 0.91%) +0.01s (+ 1.95%) 0.72s 0.75s
Check Time 5.11s (± 0.71%) 5.14s (± 0.58%) +0.03s (+ 0.51%) 5.07s 5.21s
Emit Time 2.78s (± 0.82%) 3.11s (± 1.04%) +0.33s (+11.85%) 3.07s 3.21s
Total Time 10.16s (± 0.61%) 10.53s (± 0.63%) +0.37s (+ 3.62%) 10.41s 10.70s
TFS - node (v10.16.3, x64)
Memory used 308,202k (± 0.02%) 308,547k (± 0.02%) +345k (+ 0.11%) 308,416k 308,686k
Parse Time 1.21s (± 0.28%) 1.21s (± 0.58%) +0.00s (+ 0.17%) 1.19s 1.22s
Bind Time 0.68s (± 0.70%) 0.69s (± 0.53%) +0.00s (+ 0.44%) 0.68s 0.69s
Check Time 4.61s (± 0.37%) 4.60s (± 0.43%) -0.01s (- 0.26%) 4.55s 4.64s
Emit Time 2.94s (± 1.61%) 3.19s (± 1.06%) +0.26s (+ 8.72%) 3.12s 3.27s
Total Time 9.43s (± 0.46%) 9.68s (± 0.31%) +0.25s (+ 2.62%) 9.60s 9.73s
material-ui - node (v10.16.3, x64)
Memory used 495,665k (± 0.01%) 495,826k (± 0.02%) +161k (+ 0.03%) 495,686k 496,093k
Parse Time 1.98s (± 0.47%) 1.98s (± 0.82%) +0.00s (+ 0.10%) 1.95s 2.02s
Bind Time 0.64s (± 1.01%) 0.65s (± 1.23%) +0.01s (+ 0.93%) 0.63s 0.67s
Check Time 13.97s (± 0.48%) 13.87s (± 0.49%) -0.10s (- 0.71%) 13.75s 14.04s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.59s (± 0.42%) 16.50s (± 0.50%) -0.09s (- 0.55%) 16.34s 16.71s
Angular - node (v12.1.0, x64)
Memory used 323,678k (± 0.03%) 324,011k (± 0.08%) +334k (+ 0.10%) 323,045k 324,263k
Parse Time 1.90s (± 0.57%) 1.89s (± 0.53%) -0.01s (- 0.42%) 1.88s 1.92s
Bind Time 0.80s (± 1.12%) 0.81s (± 0.92%) +0.01s (+ 1.38%) 0.80s 0.83s
Check Time 4.86s (± 0.29%) 4.87s (± 0.65%) +0.01s (+ 0.27%) 4.82s 4.98s
Emit Time 5.40s (± 0.54%) 5.78s (± 0.61%) +0.38s (+ 7.13%) 5.71s 5.85s
Total Time 12.96s (± 0.27%) 13.36s (± 0.42%) +0.40s (+ 3.10%) 13.27s 13.52s
Compiler-Unions - node (v12.1.0, x64)
Memory used 199,906k (± 0.11%) 200,367k (± 0.10%) +461k (+ 0.23%) 199,800k 200,762k
Parse Time 0.76s (± 0.45%) 0.76s (± 0.95%) -0.00s (- 0.13%) 0.74s 0.77s
Bind Time 0.50s (± 0.00%) 0.52s (± 0.92%) +0.02s (+ 3.40%) 0.51s 0.53s
Check Time 9.79s (± 1.08%) 9.66s (± 0.74%) -0.13s (- 1.32%) 9.52s 9.84s
Emit Time 2.33s (± 1.04%) 2.48s (± 1.19%) +0.15s (+ 6.39%) 2.42s 2.52s
Total Time 13.38s (± 0.80%) 13.42s (± 0.52%) +0.03s (+ 0.23%) 13.31s 13.63s
Monaco - node (v12.1.0, x64)
Memory used 337,495k (± 0.02%) 338,142k (± 0.08%) +647k (+ 0.19%) 337,132k 338,573k
Parse Time 1.52s (± 0.59%) 1.53s (± 0.95%) +0.00s (+ 0.33%) 1.50s 1.56s
Bind Time 0.70s (± 0.48%) 0.72s (± 0.56%) +0.02s (+ 2.28%) 0.71s 0.73s
Check Time 4.90s (± 0.46%) 4.90s (± 0.34%) -0.01s (- 0.12%) 4.86s 4.94s
Emit Time 2.84s (± 0.73%) 3.12s (± 0.75%) +0.28s (+ 9.75%) 3.07s 3.18s
Total Time 9.97s (± 0.38%) 10.26s (± 0.36%) +0.29s (+ 2.92%) 10.21s 10.35s
TFS - node (v12.1.0, x64)
Memory used 292,393k (± 0.03%) 292,795k (± 0.02%) +402k (+ 0.14%) 292,684k 292,958k
Parse Time 1.22s (± 0.98%) 1.22s (± 0.74%) -0.00s (- 0.33%) 1.20s 1.24s
Bind Time 0.66s (± 0.71%) 0.68s (± 0.95%) +0.02s (+ 3.33%) 0.67s 0.70s
Check Time 4.50s (± 0.40%) 4.53s (± 0.69%) +0.03s (+ 0.71%) 4.46s 4.60s
Emit Time 2.93s (± 1.07%) 3.12s (± 0.80%) +0.19s (+ 6.38%) 3.08s 3.19s
Total Time 9.31s (± 0.50%) 9.55s (± 0.54%) +0.24s (+ 2.53%) 9.45s 9.66s
material-ui - node (v12.1.0, x64)
Memory used 472,818k (± 0.01%) 473,062k (± 0.08%) +244k (+ 0.05%) 471,993k 473,367k
Parse Time 2.00s (± 0.63%) 1.99s (± 0.31%) -0.01s (- 0.50%) 1.98s 2.00s
Bind Time 0.64s (± 0.91%) 0.63s (± 0.94%) -0.00s (- 0.47%) 0.62s 0.65s
Check Time 12.53s (± 0.83%) 12.52s (± 1.18%) -0.01s (- 0.07%) 12.32s 12.83s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.16s (± 0.70%) 15.14s (± 0.97%) -0.02s (- 0.14%) 14.96s 15.47s
Angular - node (v14.15.1, x64)
Memory used 322,341k (± 0.01%) 322,931k (± 0.01%) +590k (+ 0.18%) 322,898k 322,968k
Parse Time 1.90s (± 0.43%) 1.91s (± 0.60%) +0.01s (+ 0.42%) 1.89s 1.93s
Bind Time 0.85s (± 0.85%) 0.85s (± 1.04%) +0.00s (+ 0.23%) 0.83s 0.87s
Check Time 4.82s (± 0.50%) 4.85s (± 0.54%) +0.02s (+ 0.52%) 4.78s 4.91s
Emit Time 5.45s (± 0.52%) 5.83s (± 0.68%) +0.37s (+ 6.80%) 5.71s 5.91s
Total Time 13.03s (± 0.35%) 13.44s (± 0.43%) +0.41s (+ 3.12%) 13.28s 13.58s
Compiler-Unions - node (v14.15.1, x64)
Memory used 199,646k (± 0.11%) 200,093k (± 0.12%) +447k (+ 0.22%) 199,645k 200,408k
Parse Time 0.80s (± 0.56%) 0.79s (± 0.63%) -0.00s (- 0.38%) 0.78s 0.80s
Bind Time 0.53s (± 0.84%) 0.55s (± 0.54%) +0.02s (+ 3.76%) 0.55s 0.56s
Check Time 9.72s (± 0.48%) 9.74s (± 0.95%) +0.02s (+ 0.16%) 9.65s 10.09s
Emit Time 2.34s (± 1.77%) 2.47s (± 1.35%) +0.13s (+ 5.38%) 2.40s 2.55s
Total Time 13.39s (± 0.50%) 13.56s (± 0.73%) +0.16s (+ 1.19%) 13.43s 13.90s
Monaco - node (v14.15.1, x64)
Memory used 336,897k (± 0.01%) 337,141k (± 0.00%) +245k (+ 0.07%) 337,099k 337,171k
Parse Time 1.55s (± 0.65%) 1.56s (± 0.65%) +0.00s (+ 0.13%) 1.54s 1.58s
Bind Time 0.73s (± 0.64%) 0.74s (± 0.67%) +0.02s (+ 2.05%) 0.74s 0.76s
Check Time 4.86s (± 0.42%) 4.87s (± 0.31%) +0.01s (+ 0.27%) 4.83s 4.90s
Emit Time 2.92s (± 0.40%) 3.10s (± 1.10%) +0.18s (+ 6.14%) 3.07s 3.23s
Total Time 10.06s (± 0.21%) 10.27s (± 0.38%) +0.21s (+ 2.07%) 10.21s 10.40s
TFS - node (v14.15.1, x64)
Memory used 291,579k (± 0.00%) 291,840k (± 0.01%) +260k (+ 0.09%) 291,786k 291,913k
Parse Time 1.25s (± 0.79%) 1.24s (± 1.03%) -0.01s (- 0.80%) 1.22s 1.27s
Bind Time 0.70s (± 1.07%) 0.71s (± 0.63%) +0.02s (+ 2.15%) 0.70s 0.72s
Check Time 4.49s (± 0.49%) 4.54s (± 0.36%) +0.05s (+ 1.11%) 4.51s 4.59s
Emit Time 3.03s (± 0.61%) 3.14s (± 0.34%) +0.11s (+ 3.60%) 3.11s 3.16s
Total Time 9.47s (± 0.29%) 9.64s (± 0.22%) +0.16s (+ 1.73%) 9.58s 9.68s
material-ui - node (v14.15.1, x64)
Memory used 471,556k (± 0.00%) 471,738k (± 0.00%) +182k (+ 0.04%) 471,693k 471,787k
Parse Time 2.05s (± 0.57%) 2.04s (± 0.62%) -0.01s (- 0.49%) 2.02s 2.07s
Bind Time 0.69s (± 0.69%) 0.69s (± 0.58%) -0.00s (- 0.29%) 0.68s 0.70s
Check Time 12.58s (± 0.53%) 12.53s (± 0.50%) -0.05s (- 0.37%) 12.41s 12.67s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.32s (± 0.46%) 15.27s (± 0.36%) -0.06s (- 0.37%) 15.17s 15.39s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-generic
Architecturex64
Available Memory16 GB
Available Memory7 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 42676 10
Baseline master 10

@rbuckton
Copy link
Member Author

I'm not sure if the slowdown is coming from the reusable trampoline or from using the trampoline for sourcemap/comment emit as well. I'll need to do some testing.

@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 23, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 345,990k (± 0.02%) 346,541k (± 0.02%) +551k (+ 0.16%) 346,368k 346,737k
Parse Time 1.93s (± 0.63%) 1.91s (± 0.61%) -0.01s (- 0.73%) 1.88s 1.94s
Bind Time 0.82s (± 0.86%) 0.83s (± 0.54%) +0.01s (+ 1.59%) 0.82s 0.84s
Check Time 4.95s (± 0.44%) 4.97s (± 0.32%) +0.02s (+ 0.44%) 4.93s 5.01s
Emit Time 5.25s (± 0.51%) 5.62s (± 0.81%) +0.37s (+ 7.11%) 5.57s 5.78s
Total Time 12.94s (± 0.33%) 13.33s (± 0.38%) +0.39s (+ 3.00%) 13.24s 13.49s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,609k (± 0.07%) 215,126k (± 0.05%) +517k (+ 0.24%) 214,824k 215,311k
Parse Time 0.78s (± 0.88%) 0.78s (± 0.64%) -0.00s (- 0.13%) 0.77s 0.79s
Bind Time 0.50s (± 0.98%) 0.51s (± 1.59%) +0.01s (+ 1.79%) 0.50s 0.53s
Check Time 10.70s (± 0.63%) 10.63s (± 0.87%) -0.07s (- 0.65%) 10.49s 10.93s
Emit Time 2.34s (± 1.53%) 2.50s (± 1.64%) +0.16s (+ 6.92%) 2.44s 2.65s
Total Time 14.32s (± 0.64%) 14.42s (± 0.65%) +0.10s (+ 0.68%) 14.25s 14.73s
Monaco - node (v10.16.3, x64)
Memory used 355,332k (± 0.02%) 355,678k (± 0.02%) +347k (+ 0.10%) 355,466k 355,819k
Parse Time 1.55s (± 0.69%) 1.54s (± 0.39%) -0.00s (- 0.26%) 1.53s 1.56s
Bind Time 0.72s (± 0.72%) 0.74s (± 1.19%) +0.02s (+ 2.92%) 0.73s 0.77s
Check Time 5.11s (± 0.71%) 5.12s (± 0.86%) +0.01s (+ 0.14%) 5.04s 5.22s
Emit Time 2.78s (± 0.82%) 3.06s (± 0.65%) +0.27s (+ 9.84%) 3.02s 3.10s
Total Time 10.16s (± 0.61%) 10.46s (± 0.46%) +0.29s (+ 2.90%) 10.36s 10.56s
TFS - node (v10.16.3, x64)
Memory used 308,202k (± 0.02%) 308,532k (± 0.02%) +330k (+ 0.11%) 308,385k 308,640k
Parse Time 1.21s (± 0.28%) 1.20s (± 0.73%) -0.00s (- 0.33%) 1.19s 1.23s
Bind Time 0.68s (± 0.70%) 0.69s (± 1.05%) +0.01s (+ 1.32%) 0.68s 0.71s
Check Time 4.61s (± 0.37%) 4.60s (± 0.82%) -0.01s (- 0.20%) 4.53s 4.71s
Emit Time 2.94s (± 1.61%) 3.14s (± 0.69%) +0.21s (+ 7.09%) 3.10s 3.18s
Total Time 9.43s (± 0.46%) 9.63s (± 0.48%) +0.20s (+ 2.11%) 9.50s 9.74s
material-ui - node (v10.16.3, x64)
Memory used 495,665k (± 0.01%) 495,778k (± 0.01%) +113k (+ 0.02%) 495,693k 495,870k
Parse Time 1.98s (± 0.47%) 1.98s (± 0.48%) -0.01s (- 0.30%) 1.96s 2.00s
Bind Time 0.64s (± 1.01%) 0.65s (± 1.48%) +0.01s (+ 1.40%) 0.63s 0.67s
Check Time 13.97s (± 0.48%) 13.83s (± 0.21%) -0.14s (- 0.97%) 13.75s 13.89s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.59s (± 0.42%) 16.46s (± 0.19%) -0.13s (- 0.79%) 16.38s 16.53s
Angular - node (v12.1.0, x64)
Memory used 323,678k (± 0.03%) 324,119k (± 0.02%) +441k (+ 0.14%) 323,978k 324,296k
Parse Time 1.90s (± 0.57%) 1.89s (± 0.64%) -0.01s (- 0.42%) 1.87s 1.92s
Bind Time 0.80s (± 1.12%) 0.81s (± 0.80%) +0.02s (+ 2.01%) 0.80s 0.83s
Check Time 4.86s (± 0.29%) 4.88s (± 0.54%) +0.02s (+ 0.45%) 4.82s 4.93s
Emit Time 5.40s (± 0.54%) 5.68s (± 0.73%) +0.28s (+ 5.15%) 5.58s 5.73s
Total Time 12.96s (± 0.27%) 13.26s (± 0.48%) +0.30s (+ 2.35%) 13.11s 13.35s
Compiler-Unions - node (v12.1.0, x64)
Memory used 199,906k (± 0.11%) 200,599k (± 0.07%) +693k (+ 0.35%) 200,324k 200,827k
Parse Time 0.76s (± 0.45%) 0.76s (± 0.68%) -0.00s (- 0.26%) 0.75s 0.77s
Bind Time 0.50s (± 0.00%) 0.52s (± 0.77%) +0.02s (+ 4.20%) 0.51s 0.53s
Check Time 9.79s (± 1.08%) 9.70s (± 0.34%) -0.09s (- 0.89%) 9.61s 9.76s
Emit Time 2.33s (± 1.04%) 2.44s (± 1.22%) +0.11s (+ 4.89%) 2.40s 2.52s
Total Time 13.38s (± 0.80%) 13.43s (± 0.31%) +0.04s (+ 0.33%) 13.36s 13.56s
Monaco - node (v12.1.0, x64)
Memory used 337,495k (± 0.02%) 338,238k (± 0.02%) +744k (+ 0.22%) 338,088k 338,328k
Parse Time 1.52s (± 0.59%) 1.53s (± 0.58%) +0.00s (+ 0.13%) 1.51s 1.55s
Bind Time 0.70s (± 0.48%) 0.72s (± 0.90%) +0.02s (+ 2.70%) 0.71s 0.74s
Check Time 4.90s (± 0.46%) 4.91s (± 0.43%) +0.01s (+ 0.24%) 4.88s 4.97s
Emit Time 2.84s (± 0.73%) 3.04s (± 0.78%) +0.20s (+ 7.15%) 3.00s 3.12s
Total Time 9.97s (± 0.38%) 10.20s (± 0.36%) +0.23s (+ 2.34%) 10.13s 10.31s
TFS - node (v12.1.0, x64)
Memory used 292,393k (± 0.03%) 292,801k (± 0.02%) +407k (+ 0.14%) 292,704k 292,910k
Parse Time 1.22s (± 0.98%) 1.21s (± 0.62%) -0.01s (- 0.82%) 1.19s 1.22s
Bind Time 0.66s (± 0.71%) 0.68s (± 0.81%) +0.02s (+ 3.33%) 0.67s 0.69s
Check Time 4.50s (± 0.40%) 4.52s (± 0.49%) +0.02s (+ 0.56%) 4.49s 4.58s
Emit Time 2.93s (± 1.07%) 3.07s (± 0.62%) +0.13s (+ 4.57%) 3.02s 3.12s
Total Time 9.31s (± 0.50%) 9.48s (± 0.32%) +0.17s (+ 1.86%) 9.41s 9.54s
material-ui - node (v12.1.0, x64)
Memory used 472,818k (± 0.01%) 472,858k (± 0.08%) +40k (+ 0.01%) 472,032k 473,413k
Parse Time 2.00s (± 0.63%) 1.99s (± 0.40%) -0.01s (- 0.55%) 1.97s 2.00s
Bind Time 0.64s (± 0.91%) 0.64s (± 0.62%) +0.00s (+ 0.63%) 0.63s 0.65s
Check Time 12.53s (± 0.83%) 12.54s (± 0.85%) +0.01s (+ 0.10%) 12.29s 12.76s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.16s (± 0.70%) 15.17s (± 0.74%) +0.01s (+ 0.04%) 14.92s 15.40s
Angular - node (v14.15.1, x64)
Memory used 322,341k (± 0.01%) 322,921k (± 0.01%) +580k (+ 0.18%) 322,862k 322,970k
Parse Time 1.90s (± 0.43%) 1.90s (± 0.58%) +0.00s (+ 0.21%) 1.88s 1.94s
Bind Time 0.85s (± 0.85%) 0.85s (± 0.87%) +0.00s (+ 0.12%) 0.84s 0.87s
Check Time 4.82s (± 0.50%) 4.84s (± 0.46%) +0.02s (+ 0.39%) 4.79s 4.89s
Emit Time 5.45s (± 0.52%) 5.68s (± 0.55%) +0.23s (+ 4.22%) 5.64s 5.79s
Total Time 13.03s (± 0.35%) 13.28s (± 0.38%) +0.25s (+ 1.93%) 13.19s 13.45s
Compiler-Unions - node (v14.15.1, x64)
Memory used 199,646k (± 0.11%) 199,955k (± 0.12%) +309k (+ 0.15%) 199,648k 200,375k
Parse Time 0.80s (± 0.56%) 0.80s (± 0.77%) +0.00s (+ 0.13%) 0.78s 0.81s
Bind Time 0.53s (± 0.84%) 0.55s (± 0.54%) +0.02s (+ 3.01%) 0.54s 0.55s
Check Time 9.72s (± 0.48%) 9.69s (± 0.86%) -0.03s (- 0.32%) 9.60s 10.01s
Emit Time 2.34s (± 1.77%) 2.49s (± 1.13%) +0.15s (+ 6.41%) 2.44s 2.55s
Total Time 13.39s (± 0.50%) 13.53s (± 0.69%) +0.13s (+ 1.01%) 13.43s 13.89s
Monaco - node (v14.15.1, x64)
Memory used 336,897k (± 0.01%) 337,165k (± 0.01%) +268k (+ 0.08%) 337,122k 337,204k
Parse Time 1.55s (± 0.65%) 1.55s (± 0.53%) -0.01s (- 0.45%) 1.53s 1.56s
Bind Time 0.73s (± 0.64%) 0.75s (± 0.53%) +0.02s (+ 2.60%) 0.74s 0.76s
Check Time 4.86s (± 0.42%) 4.86s (± 0.62%) +0.01s (+ 0.12%) 4.82s 4.93s
Emit Time 2.92s (± 0.40%) 3.04s (± 0.48%) +0.12s (+ 4.11%) 3.02s 3.09s
Total Time 10.06s (± 0.21%) 10.20s (± 0.38%) +0.14s (+ 1.38%) 10.13s 10.29s
TFS - node (v14.15.1, x64)
Memory used 291,579k (± 0.00%) 291,856k (± 0.01%) +277k (+ 0.09%) 291,820k 291,897k
Parse Time 1.25s (± 0.79%) 1.25s (± 1.33%) -0.00s (- 0.32%) 1.22s 1.29s
Bind Time 0.70s (± 1.07%) 0.71s (± 0.84%) +0.02s (+ 2.58%) 0.71s 0.73s
Check Time 4.49s (± 0.49%) 4.51s (± 0.35%) +0.02s (+ 0.49%) 4.47s 4.55s
Emit Time 3.03s (± 0.61%) 3.08s (± 0.22%) +0.06s (+ 1.82%) 3.07s 3.10s
Total Time 9.47s (± 0.29%) 9.56s (± 0.22%) +0.09s (+ 0.93%) 9.50s 9.59s
material-ui - node (v14.15.1, x64)
Memory used 471,556k (± 0.00%) 471,619k (± 0.05%) +63k (+ 0.01%) 470,637k 471,766k
Parse Time 2.05s (± 0.57%) 2.06s (± 0.36%) +0.01s (+ 0.29%) 2.04s 2.07s
Bind Time 0.69s (± 0.69%) 0.69s (± 0.84%) -0.00s (- 0.00%) 0.68s 0.70s
Check Time 12.58s (± 0.53%) 12.54s (± 0.63%) -0.04s (- 0.31%) 12.41s 12.75s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.32s (± 0.46%) 15.29s (± 0.53%) -0.03s (- 0.21%) 15.15s 15.50s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-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)
Benchmark Name Iterations
Current 42676 10
Baseline master 10

@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 24, 2021

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

Update: The results are in!

@microsoft microsoft deleted a comment from typescript-bot Feb 24, 2021
@microsoft microsoft deleted a comment from typescript-bot Feb 24, 2021
@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 346,075k (± 0.02%) 346,587k (± 0.02%) +512k (+ 0.15%) 346,444k 346,709k
Parse Time 1.92s (± 1.05%) 1.92s (± 0.63%) -0.01s (- 0.42%) 1.90s 1.95s
Bind Time 0.82s (± 0.41%) 0.83s (± 0.60%) +0.01s (+ 1.46%) 0.83s 0.85s
Check Time 4.99s (± 0.52%) 5.01s (± 0.54%) +0.01s (+ 0.28%) 4.95s 5.06s
Emit Time 5.23s (± 0.54%) 5.64s (± 0.45%) +0.41s (+ 7.80%) 5.58s 5.68s
Total Time 12.97s (± 0.39%) 13.40s (± 0.37%) +0.43s (+ 3.28%) 13.26s 13.46s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,765k (± 0.07%) 215,271k (± 0.08%) +506k (+ 0.24%) 214,819k 215,451k
Parse Time 0.78s (± 1.00%) 0.78s (± 0.61%) -0.00s (- 0.26%) 0.77s 0.79s
Bind Time 0.51s (± 0.79%) 0.52s (± 1.40%) +0.01s (+ 1.77%) 0.50s 0.54s
Check Time 10.88s (± 0.69%) 10.83s (± 0.92%) -0.06s (- 0.51%) 10.69s 11.18s
Emit Time 2.33s (± 0.69%) 2.51s (± 1.05%) +0.18s (+ 7.80%) 2.44s 2.54s
Total Time 14.50s (± 0.61%) 14.63s (± 0.69%) +0.13s (+ 0.91%) 14.53s 15.02s
Monaco - node (v10.16.3, x64)
Memory used 355,419k (± 0.02%) 355,702k (± 0.02%) +283k (+ 0.08%) 355,579k 355,851k
Parse Time 1.56s (± 0.52%) 1.55s (± 0.53%) -0.01s (- 0.64%) 1.53s 1.57s
Bind Time 0.73s (± 0.99%) 0.74s (± 0.79%) +0.01s (+ 0.68%) 0.73s 0.75s
Check Time 5.16s (± 0.61%) 5.15s (± 0.57%) -0.01s (- 0.21%) 5.07s 5.21s
Emit Time 2.78s (± 0.55%) 3.04s (± 0.49%) +0.26s (+ 9.50%) 3.01s 3.07s
Total Time 10.23s (± 0.51%) 10.48s (± 0.38%) +0.25s (+ 2.42%) 10.39s 10.55s
TFS - node (v10.16.3, x64)
Memory used 308,260k (± 0.02%) 308,617k (± 0.01%) +357k (+ 0.12%) 308,518k 308,701k
Parse Time 1.21s (± 0.43%) 1.21s (± 0.33%) -0.00s (- 0.17%) 1.20s 1.22s
Bind Time 0.68s (± 0.49%) 0.69s (± 0.80%) +0.01s (+ 1.76%) 0.68s 0.70s
Check Time 4.62s (± 0.58%) 4.63s (± 0.66%) +0.01s (+ 0.30%) 4.56s 4.68s
Emit Time 2.90s (± 1.32%) 3.18s (± 1.32%) +0.29s (+ 9.84%) 3.11s 3.28s
Total Time 9.40s (± 0.56%) 9.71s (± 0.49%) +0.31s (+ 3.25%) 9.63s 9.84s
material-ui - node (v10.16.3, x64)
Memory used 492,925k (± 0.01%) 493,093k (± 0.01%) +168k (+ 0.03%) 493,010k 493,169k
Parse Time 1.98s (± 0.61%) 1.98s (± 0.45%) -0.01s (- 0.40%) 1.95s 1.99s
Bind Time 0.65s (± 0.73%) 0.65s (± 1.23%) +0.01s (+ 0.77%) 0.63s 0.67s
Check Time 14.19s (± 0.81%) 14.03s (± 0.57%) -0.16s (- 1.13%) 13.88s 14.21s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.83s (± 0.73%) 16.66s (± 0.53%) -0.17s (- 1.00%) 16.50s 16.85s
Angular - node (v12.1.0, x64)
Memory used 323,722k (± 0.03%) 324,175k (± 0.09%) +453k (+ 0.14%) 323,126k 324,662k
Parse Time 1.91s (± 0.82%) 1.89s (± 0.72%) -0.02s (- 0.94%) 1.87s 1.93s
Bind Time 0.80s (± 0.69%) 0.81s (± 0.69%) +0.01s (+ 0.75%) 0.80s 0.82s
Check Time 4.90s (± 0.66%) 4.90s (± 0.57%) +0.00s (+ 0.02%) 4.85s 4.98s
Emit Time 5.42s (± 0.74%) 5.73s (± 1.08%) +0.31s (+ 5.72%) 5.64s 5.94s
Total Time 13.03s (± 0.47%) 13.33s (± 0.72%) +0.30s (+ 2.29%) 13.17s 13.66s
Compiler-Unions - node (v12.1.0, x64)
Memory used 200,143k (± 0.07%) 200,591k (± 0.09%) +448k (+ 0.22%) 200,175k 200,943k
Parse Time 0.76s (± 0.65%) 0.76s (± 0.76%) -0.00s (- 0.26%) 0.75s 0.77s
Bind Time 0.50s (± 0.72%) 0.52s (± 1.06%) +0.02s (+ 3.57%) 0.51s 0.53s
Check Time 9.96s (± 0.88%) 9.90s (± 1.01%) -0.06s (- 0.58%) 9.71s 10.17s
Emit Time 2.36s (± 1.29%) 2.50s (± 0.71%) +0.14s (+ 5.97%) 2.45s 2.54s
Total Time 13.60s (± 0.61%) 13.69s (± 0.73%) +0.10s (+ 0.71%) 13.52s 13.96s
Monaco - node (v12.1.0, x64)
Memory used 337,567k (± 0.01%) 338,276k (± 0.02%) +709k (+ 0.21%) 338,153k 338,436k
Parse Time 1.54s (± 0.65%) 1.53s (± 0.72%) -0.01s (- 0.65%) 1.51s 1.56s
Bind Time 0.71s (± 1.06%) 0.72s (± 0.97%) +0.01s (+ 1.70%) 0.71s 0.74s
Check Time 4.99s (± 0.44%) 5.00s (± 0.51%) +0.01s (+ 0.26%) 4.95s 5.06s
Emit Time 2.88s (± 0.51%) 3.07s (± 1.01%) +0.20s (+ 6.85%) 3.02s 3.16s
Total Time 10.12s (± 0.33%) 10.33s (± 0.51%) +0.21s (+ 2.07%) 10.19s 10.45s
TFS - node (v12.1.0, x64)
Memory used 292,438k (± 0.02%) 292,876k (± 0.02%) +438k (+ 0.15%) 292,777k 293,038k
Parse Time 1.23s (± 1.12%) 1.22s (± 0.86%) -0.00s (- 0.33%) 1.20s 1.24s
Bind Time 0.66s (± 1.50%) 0.69s (± 0.72%) +0.03s (+ 4.26%) 0.67s 0.69s
Check Time 4.54s (± 1.02%) 4.57s (± 0.58%) +0.03s (+ 0.75%) 4.52s 4.63s
Emit Time 2.92s (± 1.56%) 3.10s (± 0.48%) +0.18s (+ 6.06%) 3.07s 3.14s
Total Time 9.34s (± 1.07%) 9.57s (± 0.38%) +0.23s (+ 2.48%) 9.49s 9.64s
material-ui - node (v12.1.0, x64)
Memory used 470,455k (± 0.07%) 471,071k (± 0.05%) +616k (+ 0.13%) 470,109k 471,248k
Parse Time 1.99s (± 0.53%) 1.99s (± 0.22%) -0.00s (- 0.10%) 1.98s 2.00s
Bind Time 0.64s (± 0.74%) 0.64s (± 1.01%) -0.01s (- 0.78%) 0.63s 0.66s
Check Time 12.85s (± 1.26%) 12.76s (± 0.93%) -0.09s (- 0.69%) 12.57s 13.08s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.49s (± 1.09%) 15.39s (± 0.79%) -0.10s (- 0.63%) 15.19s 15.71s
Angular - node (v14.15.1, x64)
Memory used 322,274k (± 0.08%) 322,959k (± 0.01%) +685k (+ 0.21%) 322,931k 323,008k
Parse Time 1.92s (± 0.74%) 1.90s (± 0.56%) -0.02s (- 0.83%) 1.88s 1.93s
Bind Time 0.86s (± 2.13%) 0.86s (± 0.93%) -0.00s (- 0.12%) 0.84s 0.87s
Check Time 4.88s (± 0.88%) 4.85s (± 0.43%) -0.03s (- 0.53%) 4.82s 4.92s
Emit Time 5.54s (± 1.22%) 5.93s (± 0.74%) +0.40s (+ 7.15%) 5.81s 6.03s
Total Time 13.19s (± 0.92%) 13.54s (± 0.48%) +0.35s (+ 2.68%) 13.35s 13.72s
Compiler-Unions - node (v14.15.1, x64)
Memory used 201,578k (± 0.63%) 200,085k (± 0.11%) -1,493k (- 0.74%) 199,855k 200,574k
Parse Time 0.80s (± 1.02%) 0.80s (± 0.75%) -0.00s (- 0.50%) 0.79s 0.81s
Bind Time 0.54s (± 0.93%) 0.55s (± 0.54%) +0.02s (+ 3.18%) 0.55s 0.56s
Check Time 9.92s (± 0.50%) 9.87s (± 0.49%) -0.04s (- 0.44%) 9.81s 10.00s
Emit Time 2.37s (± 1.52%) 2.56s (± 0.96%) +0.19s (+ 7.79%) 2.52s 2.63s
Total Time 13.62s (± 0.44%) 13.78s (± 0.42%) +0.16s (+ 1.14%) 13.69s 13.93s
Monaco - node (v14.15.1, x64)
Memory used 336,966k (± 0.01%) 337,249k (± 0.01%) +283k (+ 0.08%) 337,209k 337,293k
Parse Time 1.56s (± 0.67%) 1.56s (± 0.65%) -0.00s (- 0.13%) 1.54s 1.58s
Bind Time 0.73s (± 0.80%) 0.75s (± 0.63%) +0.02s (+ 3.16%) 0.74s 0.76s
Check Time 4.93s (± 0.63%) 4.93s (± 0.34%) -0.01s (- 0.10%) 4.89s 4.96s
Emit Time 2.93s (± 0.86%) 3.09s (± 0.70%) +0.17s (+ 5.74%) 3.05s 3.16s
Total Time 10.14s (± 0.49%) 10.32s (± 0.19%) +0.18s (+ 1.77%) 10.28s 10.36s
TFS - node (v14.15.1, x64)
Memory used 291,601k (± 0.01%) 291,928k (± 0.01%) +327k (+ 0.11%) 291,888k 292,004k
Parse Time 1.24s (± 1.11%) 1.25s (± 0.98%) +0.00s (+ 0.40%) 1.22s 1.27s
Bind Time 0.69s (± 0.69%) 0.71s (± 0.51%) +0.02s (+ 3.03%) 0.71s 0.72s
Check Time 4.55s (± 0.61%) 4.55s (± 0.43%) +0.00s (+ 0.09%) 4.51s 4.59s
Emit Time 3.06s (± 0.55%) 3.18s (± 0.52%) +0.12s (+ 3.92%) 3.15s 3.23s
Total Time 9.55s (± 0.43%) 9.70s (± 0.30%) +0.15s (+ 1.57%) 9.60s 9.74s
material-ui - node (v14.15.1, x64)
Memory used 469,507k (± 0.01%) 469,689k (± 0.01%) +183k (+ 0.04%) 469,612k 469,737k
Parse Time 2.07s (± 0.76%) 2.05s (± 0.53%) -0.01s (- 0.68%) 2.02s 2.07s
Bind Time 0.69s (± 1.16%) 0.69s (± 0.72%) +0.00s (+ 0.43%) 0.68s 0.70s
Check Time 12.83s (± 0.58%) 12.82s (± 0.54%) -0.00s (- 0.01%) 12.67s 12.97s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.58s (± 0.50%) 15.57s (± 0.48%) -0.01s (- 0.07%) 15.39s 15.72s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-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)
Benchmark Name Iterations
Current 42676 10
Baseline master 10

Developer Information:

Download Benchmark

@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Feb 24, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - master..42676

Metric master 42676 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 346,075k (± 0.02%) 346,509k (± 0.02%) +434k (+ 0.13%) 346,406k 346,667k
Parse Time 1.92s (± 1.05%) 1.91s (± 0.63%) -0.01s (- 0.57%) 1.89s 1.94s
Bind Time 0.82s (± 0.41%) 0.83s (± 0.57%) +0.01s (+ 1.22%) 0.83s 0.85s
Check Time 4.99s (± 0.52%) 5.00s (± 0.44%) +0.01s (+ 0.22%) 4.95s 5.05s
Emit Time 5.23s (± 0.54%) 5.71s (± 1.02%) +0.47s (+ 9.04%) 5.60s 5.86s
Total Time 12.97s (± 0.39%) 13.45s (± 0.47%) +0.48s (+ 3.72%) 13.30s 13.57s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,765k (± 0.07%) 215,707k (± 0.37%) +943k (+ 0.44%) 214,997k 218,904k
Parse Time 0.78s (± 1.00%) 0.78s (± 0.61%) -0.00s (- 0.26%) 0.77s 0.79s
Bind Time 0.51s (± 0.79%) 0.52s (± 1.29%) +0.01s (+ 1.57%) 0.50s 0.53s
Check Time 10.88s (± 0.69%) 10.83s (± 0.56%) -0.05s (- 0.50%) 10.70s 11.00s
Emit Time 2.33s (± 0.69%) 2.53s (± 1.04%) +0.20s (+ 8.66%) 2.49s 2.59s
Total Time 14.50s (± 0.61%) 14.65s (± 0.38%) +0.15s (+ 1.05%) 14.50s 14.79s
Monaco - node (v10.16.3, x64)
Memory used 355,419k (± 0.02%) 355,758k (± 0.02%) +339k (+ 0.10%) 355,554k 355,890k
Parse Time 1.56s (± 0.52%) 1.56s (± 0.38%) -0.00s (- 0.06%) 1.54s 1.57s
Bind Time 0.73s (± 0.99%) 0.74s (± 0.68%) +0.00s (+ 0.41%) 0.72s 0.74s
Check Time 5.16s (± 0.61%) 5.15s (± 0.48%) -0.01s (- 0.17%) 5.11s 5.21s
Emit Time 2.78s (± 0.55%) 3.07s (± 0.33%) +0.29s (+10.62%) 3.05s 3.10s
Total Time 10.23s (± 0.51%) 10.52s (± 0.24%) +0.29s (+ 2.83%) 10.46s 10.57s
TFS - node (v10.16.3, x64)
Memory used 308,260k (± 0.02%) 308,649k (± 0.01%) +389k (+ 0.13%) 308,538k 308,729k
Parse Time 1.21s (± 0.43%) 1.21s (± 0.43%) -0.00s (- 0.17%) 1.20s 1.22s
Bind Time 0.68s (± 0.49%) 0.69s (± 0.83%) +0.01s (+ 1.47%) 0.68s 0.70s
Check Time 4.62s (± 0.58%) 4.66s (± 0.69%) +0.04s (+ 0.91%) 4.59s 4.72s
Emit Time 2.90s (± 1.32%) 3.19s (± 0.97%) +0.29s (+10.19%) 3.11s 3.25s
Total Time 9.40s (± 0.56%) 9.75s (± 0.58%) +0.35s (+ 3.69%) 9.62s 9.86s
material-ui - node (v10.16.3, x64)
Memory used 492,925k (± 0.01%) 493,151k (± 0.01%) +225k (+ 0.05%) 493,075k 493,236k
Parse Time 1.98s (± 0.61%) 1.99s (± 0.54%) +0.01s (+ 0.30%) 1.97s 2.01s
Bind Time 0.65s (± 0.73%) 0.65s (± 1.02%) +0.00s (+ 0.46%) 0.64s 0.66s
Check Time 14.19s (± 0.81%) 14.09s (± 0.60%) -0.10s (- 0.70%) 13.98s 14.38s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.83s (± 0.73%) 16.74s (± 0.54%) -0.10s (- 0.57%) 16.63s 17.04s
Angular - node (v12.1.0, x64)
Memory used 323,722k (± 0.03%) 324,295k (± 0.02%) +573k (+ 0.18%) 324,156k 324,443k
Parse Time 1.91s (± 0.82%) 1.90s (± 0.66%) -0.01s (- 0.47%) 1.88s 1.93s
Bind Time 0.80s (± 0.69%) 0.81s (± 0.74%) +0.00s (+ 0.50%) 0.79s 0.82s
Check Time 4.90s (± 0.66%) 4.88s (± 0.60%) -0.02s (- 0.37%) 4.82s 4.97s
Emit Time 5.42s (± 0.74%) 5.70s (± 0.81%) +0.28s (+ 5.18%) 5.62s 5.81s
Total Time 13.03s (± 0.47%) 13.29s (± 0.36%) +0.26s (+ 1.97%) 13.20s 13.39s
Compiler-Unions - node (v12.1.0, x64)
Memory used 200,143k (± 0.07%) 200,665k (± 0.08%) +522k (+ 0.26%) 200,099k 200,856k
Parse Time 0.76s (± 0.65%) 0.77s (± 1.15%) +0.00s (+ 0.26%) 0.75s 0.79s
Bind Time 0.50s (± 0.72%) 0.52s (± 0.43%) +0.02s (+ 3.37%) 0.52s 0.53s
Check Time 9.96s (± 0.88%) 9.88s (± 0.87%) -0.09s (- 0.87%) 9.73s 10.10s
Emit Time 2.36s (± 1.29%) 2.51s (± 1.11%) +0.15s (+ 6.14%) 2.46s 2.57s
Total Time 13.60s (± 0.61%) 13.67s (± 0.56%) +0.07s (+ 0.54%) 13.54s 13.86s
Monaco - node (v12.1.0, x64)
Memory used 337,567k (± 0.01%) 338,247k (± 0.01%) +680k (+ 0.20%) 338,136k 338,327k
Parse Time 1.54s (± 0.65%) 1.53s (± 0.51%) -0.01s (- 0.84%) 1.52s 1.55s
Bind Time 0.71s (± 1.06%) 0.72s (± 0.62%) +0.01s (+ 1.56%) 0.71s 0.73s
Check Time 4.99s (± 0.44%) 5.00s (± 0.56%) +0.01s (+ 0.14%) 4.93s 5.06s
Emit Time 2.88s (± 0.51%) 3.06s (± 0.54%) +0.19s (+ 6.57%) 3.03s 3.11s
Total Time 10.12s (± 0.33%) 10.31s (± 0.29%) +0.20s (+ 1.96%) 10.26s 10.38s
TFS - node (v12.1.0, x64)
Memory used 292,438k (± 0.02%) 292,841k (± 0.02%) +404k (+ 0.14%) 292,673k 292,957k
Parse Time 1.23s (± 1.12%) 1.22s (± 0.61%) -0.01s (- 0.81%) 1.20s 1.23s
Bind Time 0.66s (± 1.50%) 0.69s (± 1.59%) +0.03s (+ 4.56%) 0.66s 0.72s
Check Time 4.54s (± 1.02%) 4.54s (± 0.43%) +0.01s (+ 0.11%) 4.50s 4.58s
Emit Time 2.92s (± 1.56%) 3.11s (± 0.50%) +0.19s (+ 6.40%) 3.08s 3.14s
Total Time 9.34s (± 1.07%) 9.56s (± 0.25%) +0.22s (+ 2.30%) 9.51s 9.62s
material-ui - node (v12.1.0, x64)
Memory used 470,455k (± 0.07%) 471,048k (± 0.05%) +593k (+ 0.13%) 470,081k 471,282k
Parse Time 1.99s (± 0.53%) 1.99s (± 0.62%) -0.01s (- 0.30%) 1.97s 2.02s
Bind Time 0.64s (± 0.74%) 0.64s (± 0.91%) -0.01s (- 0.93%) 0.63s 0.65s
Check Time 12.85s (± 1.26%) 12.72s (± 0.90%) -0.13s (- 1.00%) 12.55s 13.06s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.49s (± 1.09%) 15.35s (± 0.78%) -0.14s (- 0.91%) 15.16s 15.68s
Angular - node (v14.15.1, x64)
Memory used 322,274k (± 0.08%) 322,972k (± 0.01%) +698k (+ 0.22%) 322,923k 323,010k
Parse Time 1.92s (± 0.74%) 1.91s (± 0.67%) -0.01s (- 0.47%) 1.89s 1.95s
Bind Time 0.86s (± 2.13%) 0.86s (± 1.02%) +0.00s (+ 0.12%) 0.84s 0.88s
Check Time 4.88s (± 0.88%) 4.85s (± 0.35%) -0.03s (- 0.66%) 4.81s 4.89s
Emit Time 5.54s (± 1.22%) 5.96s (± 0.57%) +0.43s (+ 7.75%) 5.90s 6.03s
Total Time 13.19s (± 0.92%) 13.59s (± 0.34%) +0.39s (+ 2.99%) 13.48s 13.67s
Compiler-Unions - node (v14.15.1, x64)
Memory used 201,578k (± 0.63%) 200,103k (± 0.11%) -1,475k (- 0.73%) 199,866k 200,565k
Parse Time 0.80s (± 1.02%) 0.80s (± 0.70%) -0.00s (- 0.25%) 0.79s 0.81s
Bind Time 0.54s (± 0.93%) 0.55s (± 0.73%) +0.02s (+ 2.99%) 0.54s 0.56s
Check Time 9.92s (± 0.50%) 9.93s (± 0.57%) +0.01s (+ 0.12%) 9.81s 10.03s
Emit Time 2.37s (± 1.52%) 2.56s (± 1.43%) +0.19s (+ 7.96%) 2.50s 2.67s
Total Time 13.62s (± 0.44%) 13.84s (± 0.54%) +0.22s (+ 1.60%) 13.73s 13.99s
Monaco - node (v14.15.1, x64)
Memory used 336,966k (± 0.01%) 337,255k (± 0.00%) +289k (+ 0.09%) 337,231k 337,309k
Parse Time 1.56s (± 0.67%) 1.55s (± 0.77%) -0.00s (- 0.32%) 1.53s 1.59s
Bind Time 0.73s (± 0.80%) 0.74s (± 0.40%) +0.02s (+ 2.06%) 0.74s 0.75s
Check Time 4.93s (± 0.63%) 4.94s (± 0.51%) +0.01s (+ 0.16%) 4.89s 4.99s
Emit Time 2.93s (± 0.86%) 3.11s (± 0.51%) +0.19s (+ 6.39%) 3.08s 3.14s
Total Time 10.14s (± 0.49%) 10.35s (± 0.29%) +0.20s (+ 1.99%) 10.30s 10.41s
TFS - node (v14.15.1, x64)
Memory used 291,601k (± 0.01%) 291,927k (± 0.01%) +326k (+ 0.11%) 291,852k 291,977k
Parse Time 1.24s (± 1.11%) 1.25s (± 1.09%) +0.00s (+ 0.32%) 1.22s 1.29s
Bind Time 0.69s (± 0.69%) 0.71s (± 0.56%) +0.02s (+ 2.60%) 0.70s 0.72s
Check Time 4.55s (± 0.61%) 4.55s (± 0.44%) +0.00s (+ 0.09%) 4.52s 4.60s
Emit Time 3.06s (± 0.55%) 3.20s (± 0.63%) +0.13s (+ 4.34%) 3.17s 3.25s
Total Time 9.55s (± 0.43%) 9.71s (± 0.33%) +0.16s (+ 1.71%) 9.65s 9.79s
material-ui - node (v14.15.1, x64)
Memory used 469,507k (± 0.01%) 469,678k (± 0.00%) +171k (+ 0.04%) 469,617k 469,711k
Parse Time 2.07s (± 0.76%) 2.05s (± 0.69%) -0.01s (- 0.53%) 2.02s 2.08s
Bind Time 0.69s (± 1.16%) 0.70s (± 0.85%) +0.00s (+ 0.58%) 0.68s 0.71s
Check Time 12.83s (± 0.58%) 12.79s (± 0.76%) -0.03s (- 0.23%) 12.60s 13.08s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.58s (± 0.50%) 15.55s (± 0.68%) -0.04s (- 0.24%) 15.32s 15.83s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-198-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)
Benchmark Name Iterations
Current 42676 10
Baseline master 10

Developer Information:

Download Benchmark

@rbuckton
Copy link
Member Author

The perf numbers now look fairly stable. @weswigham can you take another look and provide feedback on the shared trampoline mechanism?

Copy link
Member

@weswigham weswigham left a comment

Choose a reason for hiding this comment

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

The infra change looks good, and the new trampoline abstraction looks pretty nice to use. 👍 There's another BinaryExpression trampoline in the checker that we should probably swap to use it, but that by no means needs to be done here.

@rbuckton
Copy link
Member Author

I'll look into the checker's trampoline in a later PR.

@rbuckton rbuckton merged commit 68b0323 into master Feb 26, 2021
jayaddison added a commit to openculinary/frontend that referenced this pull request Mar 8, 2021
This is a rollback pending a release containing a fix for microsoft/TypeScript#41717

We have also encountered another likely unrelated TypeError ('has' property) in emitter.ts that should be re-checked following a release containing microsoft/TypeScript#42676
@jakebailey jakebailey deleted the preprinter branch November 7, 2022 17:38
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
Archived in project
Development

Successfully merging this pull request may close these issues.

If exported variable is renamed, tsc will generate code with a syntax error
3 participants