Skip to content

[WIP] Improve optional chaining checker performance #33794

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 7 commits into from
Oct 19, 2019

Conversation

rbuckton
Copy link
Contributor

@rbuckton rbuckton commented Oct 3, 2019

Investigating possible performance improvements in the checker related to optional chaining.

@rbuckton
Copy link
Contributor Author

rbuckton commented Oct 3, 2019

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 3, 2019

Heya @rbuckton, I've started to run the perf test suite on this PR at f39b884. You can monitor the build here. It should now contribute to this PR's status checks.

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..33794

Metric master 33794 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 331,548k (± 0.07%) 331,819k (± 0.07%) +271k (+ 0.08%) 330,952k 332,037k
Parse Time 1.58s (± 0.73%) 1.57s (± 0.78%) -0.01s (- 0.57%) 1.55s 1.60s
Bind Time 0.84s (± 0.84%) 0.84s (± 0.69%) -0.00s (- 0.24%) 0.83s 0.85s
Check Time 4.43s (± 0.57%) 4.44s (± 0.61%) +0.01s (+ 0.23%) 4.39s 4.50s
Emit Time 5.46s (± 0.81%) 5.47s (± 1.36%) +0.01s (+ 0.24%) 5.37s 5.74s
Total Time 12.31s (± 0.56%) 12.32s (± 0.73%) +0.02s (+ 0.12%) 12.22s 12.65s
Monaco - node (v12.1.0, x64)
Memory used 346,616k (± 0.03%) 346,666k (± 0.01%) +50k (+ 0.01%) 346,563k 346,778k
Parse Time 1.23s (± 0.74%) 1.23s (± 0.63%) +0.00s (+ 0.00%) 1.21s 1.24s
Bind Time 0.72s (± 0.41%) 0.72s (± 0.66%) -0.00s (- 0.14%) 0.71s 0.73s
Check Time 4.47s (± 0.54%) 4.48s (± 0.44%) +0.01s (+ 0.20%) 4.45s 4.54s
Emit Time 3.00s (± 1.02%) 3.01s (± 0.63%) +0.01s (+ 0.23%) 2.97s 3.06s
Total Time 9.42s (± 0.46%) 9.43s (± 0.36%) +0.01s (+ 0.12%) 9.38s 9.55s
TFS - node (v12.1.0, x64)
Memory used 304,855k (± 0.02%) 304,851k (± 0.02%) -4k (- 0.00%) 304,711k 304,986k
Parse Time 0.95s (± 0.71%) 0.95s (± 0.61%) -0.00s (- 0.10%) 0.94s 0.97s
Bind Time 0.68s (± 1.09%) 0.68s (± 0.69%) 0.00s ( 0.00%) 0.67s 0.69s
Check Time 4.05s (± 0.46%) 4.06s (± 0.61%) +0.01s (+ 0.27%) 4.00s 4.11s
Emit Time 3.10s (± 0.86%) 3.10s (± 0.56%) -0.00s (- 0.06%) 3.06s 3.14s
Total Time 8.79s (± 0.48%) 8.79s (± 0.33%) +0.00s (+ 0.03%) 8.71s 8.86s
Angular - node (v8.9.0, x64)
Memory used 350,713k (± 0.02%) 350,961k (± 0.03%) +248k (+ 0.07%) 350,748k 351,203k
Parse Time 2.11s (± 0.60%) 2.12s (± 0.36%) +0.01s (+ 0.28%) 2.10s 2.13s
Bind Time 0.89s (± 0.41%) 0.90s (± 0.49%) +0.01s (+ 0.78%) 0.89s 0.91s
Check Time 5.26s (± 0.45%) 5.28s (± 0.35%) +0.02s (+ 0.48%) 5.23s 5.30s
Emit Time 6.21s (± 1.05%) 6.25s (± 0.75%) +0.04s (+ 0.66%) 6.14s 6.35s
Total Time 14.47s (± 0.49%) 14.55s (± 0.26%) +0.08s (+ 0.52%) 14.45s 14.62s
Monaco - node (v8.9.0, x64)
Memory used 364,556k (± 0.02%) 364,590k (± 0.01%) +34k (+ 0.01%) 364,561k 364,673k
Parse Time 1.56s (± 0.48%) 1.57s (± 0.54%) +0.01s (+ 0.51%) 1.56s 1.59s
Bind Time 0.92s (± 0.72%) 0.91s (± 0.64%) -0.01s (- 0.76%) 0.90s 0.93s
Check Time 5.50s (± 1.10%) 5.52s (± 0.49%) +0.02s (+ 0.42%) 5.47s 5.60s
Emit Time 3.10s (± 3.04%) 3.06s (± 0.37%) -0.04s (- 1.42%) 3.04s 3.09s
Total Time 11.09s (± 0.46%) 11.07s (± 0.35%) -0.02s (- 0.18%) 10.99s 11.17s
TFS - node (v8.9.0, x64)
Memory used 321,325k (± 0.01%) 321,339k (± 0.01%) +14k (+ 0.00%) 321,234k 321,420k
Parse Time 1.26s (± 0.39%) 1.27s (± 0.64%) +0.00s (+ 0.24%) 1.25s 1.29s
Bind Time 0.73s (± 0.67%) 0.73s (± 0.64%) -0.00s (- 0.54%) 0.72s 0.74s
Check Time 4.71s (± 0.73%) 4.71s (± 0.40%) -0.00s (- 0.08%) 4.67s 4.76s
Emit Time 3.22s (± 0.50%) 3.22s (± 0.72%) -0.01s (- 0.22%) 3.15s 3.27s
Total Time 9.94s (± 0.52%) 9.93s (± 0.42%) -0.01s (- 0.10%) 9.82s 10.02s
Angular - node (v8.9.0, x86)
Memory used 198,894k (± 0.03%) 199,085k (± 0.02%) +191k (+ 0.10%) 198,965k 199,163k
Parse Time 2.04s (± 0.85%) 2.03s (± 0.61%) -0.00s (- 0.15%) 2.01s 2.07s
Bind Time 1.00s (± 0.67%) 1.01s (± 0.34%) +0.00s (+ 0.40%) 1.00s 1.01s
Check Time 4.80s (± 0.22%) 4.81s (± 0.34%) +0.00s (+ 0.10%) 4.78s 4.85s
Emit Time 6.09s (± 1.81%) 6.09s (± 1.43%) +0.00s (+ 0.03%) 5.96s 6.33s
Total Time 13.92s (± 0.82%) 13.94s (± 0.55%) +0.02s (+ 0.11%) 13.84s 14.17s
Monaco - node (v8.9.0, x86)
Memory used 204,081k (± 0.02%) 204,062k (± 0.02%) -19k (- 0.01%) 203,979k 204,166k
Parse Time 1.61s (± 0.45%) 1.61s (± 0.62%) +0.01s (+ 0.31%) 1.59s 1.64s
Bind Time 0.74s (± 0.54%) 0.74s (± 0.95%) +0.00s (+ 0.27%) 0.73s 0.76s
Check Time 5.40s (± 0.27%) 5.35s (± 1.73%) -0.04s (- 0.76%) 5.08s 5.53s
Emit Time 2.89s (± 1.07%) 2.97s (± 3.75%) +0.08s (+ 2.59%) 2.86s 3.28s
Total Time 10.64s (± 0.29%) 10.68s (± 0.52%) +0.04s (+ 0.38%) 10.61s 10.82s
TFS - node (v8.9.0, x86)
Memory used 180,836k (± 0.01%) 180,879k (± 0.02%) +42k (+ 0.02%) 180,830k 180,940k
Parse Time 1.31s (± 0.36%) 1.30s (± 0.46%) -0.01s (- 0.46%) 1.29s 1.32s
Bind Time 0.69s (± 1.13%) 0.69s (± 0.96%) +0.00s (+ 0.58%) 0.68s 0.71s
Check Time 4.49s (± 0.74%) 4.48s (± 0.52%) -0.01s (- 0.29%) 4.43s 4.54s
Emit Time 2.96s (± 0.91%) 2.97s (± 0.89%) +0.01s (+ 0.37%) 2.88s 3.01s
Total Time 9.45s (± 0.50%) 9.45s (± 0.40%) -0.00s (- 0.01%) 9.35s 9.53s
Angular - node (v9.0.0, x64)
Memory used 350,259k (± 0.02%) 350,607k (± 0.02%) +347k (+ 0.10%) 350,455k 350,795k
Parse Time 1.84s (± 0.37%) 1.83s (± 0.53%) -0.01s (- 0.38%) 1.80s 1.85s
Bind Time 0.84s (± 0.83%) 0.84s (± 0.79%) -0.00s (- 0.12%) 0.83s 0.86s
Check Time 5.05s (± 0.80%) 5.06s (± 0.39%) +0.01s (+ 0.24%) 5.00s 5.09s
Emit Time 5.88s (± 2.15%) 5.83s (± 1.79%) -0.05s (- 0.80%) 5.61s 6.04s
Total Time 13.61s (± 0.85%) 13.57s (± 0.76%) -0.04s (- 0.29%) 13.35s 13.76s
Monaco - node (v9.0.0, x64)
Memory used 364,340k (± 0.03%) 364,386k (± 0.02%) +46k (+ 0.01%) 364,198k 364,550k
Parse Time 1.32s (± 0.45%) 1.31s (± 0.47%) -0.00s (- 0.38%) 1.30s 1.33s
Bind Time 0.86s (± 1.28%) 0.87s (± 1.39%) +0.00s (+ 0.35%) 0.85s 0.89s
Check Time 5.36s (± 1.18%) 5.33s (± 1.78%) -0.03s (- 0.56%) 5.12s 5.42s
Emit Time 3.09s (± 4.87%) 3.16s (± 5.42%) +0.07s (+ 2.26%) 2.98s 3.55s
Total Time 10.63s (± 1.04%) 10.67s (± 0.87%) +0.04s (+ 0.37%) 10.54s 10.87s
TFS - node (v9.0.0, x64)
Memory used 321,099k (± 0.01%) 321,063k (± 0.02%) -37k (- 0.01%) 320,965k 321,255k
Parse Time 1.03s (± 0.72%) 1.03s (± 0.60%) -0.00s (- 0.19%) 1.02s 1.04s
Bind Time 0.68s (± 0.81%) 0.68s (± 0.95%) +0.00s (+ 0.00%) 0.67s 0.70s
Check Time 4.86s (± 0.48%) 4.86s (± 0.54%) -0.01s (- 0.14%) 4.81s 4.92s
Emit Time 3.05s (± 0.64%) 3.06s (± 0.83%) +0.01s (+ 0.29%) 3.01s 3.13s
Total Time 9.63s (± 0.30%) 9.63s (± 0.53%) -0.00s (- 0.03%) 9.52s 9.75s
Angular - node (v9.0.0, x86)
Memory used 198,978k (± 0.02%) 199,170k (± 0.02%) +192k (+ 0.10%) 199,077k 199,259k
Parse Time 1.74s (± 0.94%) 1.74s (± 0.56%) +0.00s (+ 0.00%) 1.72s 1.76s
Bind Time 0.95s (± 0.68%) 0.96s (± 0.85%) +0.00s (+ 0.53%) 0.94s 0.97s
Check Time 4.48s (± 0.27%) 4.50s (± 0.36%) +0.03s (+ 0.58%) 4.48s 4.55s
Emit Time 5.70s (± 0.85%) 5.66s (± 0.61%) -0.04s (- 0.61%) 5.58s 5.76s
Total Time 12.87s (± 0.39%) 12.86s (± 0.33%) -0.01s (- 0.05%) 12.76s 12.97s
Monaco - node (v9.0.0, x86)
Memory used 204,183k (± 0.03%) 204,137k (± 0.02%) -45k (- 0.02%) 204,026k 204,221k
Parse Time 1.36s (± 1.95%) 1.34s (± 0.44%) -0.02s (- 1.47%) 1.32s 1.35s
Bind Time 0.69s (± 1.02%) 0.68s (± 1.11%) -0.00s (- 0.58%) 0.67s 0.70s
Check Time 5.02s (± 2.24%) 4.98s (± 1.01%) -0.04s (- 0.78%) 4.92s 5.15s
Emit Time 3.19s (± 2.56%) 3.23s (± 0.67%) +0.05s (+ 1.51%) 3.20s 3.30s
Total Time 10.25s (± 0.62%) 10.24s (± 0.62%) -0.02s (- 0.17%) 10.13s 10.39s
TFS - node (v9.0.0, x86)
Memory used 180,875k (± 0.02%) 180,838k (± 0.02%) -37k (- 0.02%) 180,776k 180,932k
Parse Time 1.07s (± 1.43%) 1.06s (± 0.72%) -0.01s (- 1.03%) 1.04s 1.08s
Bind Time 0.65s (± 1.05%) 0.65s (± 0.77%) -0.00s (- 0.15%) 0.63s 0.65s
Check Time 4.36s (± 0.47%) 4.39s (± 0.69%) +0.03s (+ 0.60%) 4.31s 4.45s
Emit Time 2.92s (± 1.01%) 2.91s (± 0.64%) -0.01s (- 0.34%) 2.87s 2.96s
Total Time 9.00s (± 0.44%) 9.00s (± 0.47%) -0.00s (- 0.01%) 8.92s 9.11s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-161-generic
Architecturex64
Available Memory16 GB
Available Memory8 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
Benchmark Name Iterations
Current 33794 10
Baseline master 10

@rbuckton rbuckton force-pushed the optionalChainingPerf branch from f39b884 to 27d142d Compare October 3, 2019 23:18
@rbuckton rbuckton force-pushed the optionalChainingPerf branch from 27d142d to b86485b Compare October 4, 2019 00:04
@rbuckton
Copy link
Contributor Author

rbuckton commented Oct 4, 2019

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 4, 2019

Heya @rbuckton, I've started to run the perf test suite on this PR at b86485b. You can monitor the build here. It should now contribute to this PR's status checks.

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..33794

Metric master 33794 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 331,577k (± 0.03%) 331,834k (± 0.07%) +256k (+ 0.08%) 330,887k 332,092k
Parse Time 1.58s (± 0.64%) 1.57s (± 0.75%) -0.00s (- 0.32%) 1.55s 1.60s
Bind Time 0.83s (± 0.60%) 0.83s (± 0.82%) 0.00s ( 0.00%) 0.82s 0.85s
Check Time 4.41s (± 0.46%) 4.43s (± 0.60%) +0.03s (+ 0.59%) 4.39s 4.51s
Emit Time 5.41s (± 0.34%) 5.47s (± 0.83%) +0.06s (+ 1.13%) 5.39s 5.61s
Total Time 12.23s (± 0.24%) 12.31s (± 0.58%) +0.08s (+ 0.65%) 12.19s 12.55s
Monaco - node (v12.1.0, x64)
Memory used 346,591k (± 0.02%) 346,700k (± 0.02%) +109k (+ 0.03%) 346,605k 346,912k
Parse Time 1.23s (± 0.63%) 1.23s (± 0.74%) 0.00s ( 0.00%) 1.21s 1.25s
Bind Time 0.72s (± 0.62%) 0.72s (± 1.26%) -0.00s (- 0.14%) 0.71s 0.75s
Check Time 4.50s (± 0.49%) 4.49s (± 0.52%) -0.01s (- 0.31%) 4.44s 4.56s
Emit Time 3.00s (± 0.67%) 3.01s (± 0.68%) +0.01s (+ 0.40%) 2.95s 3.06s
Total Time 9.45s (± 0.37%) 9.45s (± 0.31%) -0.00s (- 0.03%) 9.39s 9.51s
TFS - node (v12.1.0, x64)
Memory used 304,861k (± 0.01%) 304,818k (± 0.02%) -43k (- 0.01%) 304,665k 304,906k
Parse Time 0.95s (± 0.95%) 0.95s (± 0.58%) +0.00s (+ 0.11%) 0.94s 0.96s
Bind Time 0.68s (± 0.73%) 0.68s (± 0.81%) -0.00s (- 0.44%) 0.67s 0.69s
Check Time 4.03s (± 0.50%) 4.04s (± 0.45%) +0.00s (+ 0.02%) 4.00s 4.07s
Emit Time 3.10s (± 0.95%) 3.09s (± 0.81%) -0.02s (- 0.55%) 3.04s 3.17s
Total Time 8.78s (± 0.39%) 8.76s (± 0.39%) -0.02s (- 0.21%) 8.68s 8.84s
Angular - node (v8.9.0, x64)
Memory used 350,703k (± 0.02%) 351,015k (± 0.02%) +312k (+ 0.09%) 350,782k 351,158k
Parse Time 2.12s (± 0.90%) 2.11s (± 0.25%) -0.01s (- 0.33%) 2.10s 2.12s
Bind Time 0.90s (± 0.72%) 0.90s (± 0.49%) +0.00s (+ 0.45%) 0.89s 0.91s
Check Time 5.28s (± 0.81%) 5.27s (± 0.30%) -0.01s (- 0.13%) 5.24s 5.31s
Emit Time 6.25s (± 1.11%) 6.23s (± 0.72%) -0.02s (- 0.27%) 6.09s 6.31s
Total Time 14.55s (± 0.64%) 14.52s (± 0.29%) -0.03s (- 0.19%) 14.41s 14.61s
Monaco - node (v8.9.0, x64)
Memory used 364,588k (± 0.01%) 364,626k (± 0.01%) +38k (+ 0.01%) 364,538k 364,688k
Parse Time 1.57s (± 0.37%) 1.57s (± 0.37%) -0.00s (- 0.19%) 1.55s 1.58s
Bind Time 0.92s (± 0.44%) 0.92s (± 0.52%) -0.00s (- 0.22%) 0.91s 0.93s
Check Time 5.52s (± 0.45%) 5.51s (± 1.02%) -0.02s (- 0.29%) 5.29s 5.56s
Emit Time 3.05s (± 0.41%) 3.09s (± 3.43%) +0.04s (+ 1.25%) 3.00s 3.51s
Total Time 11.06s (± 0.25%) 11.08s (± 0.54%) +0.02s (+ 0.17%) 11.02s 11.30s
TFS - node (v8.9.0, x64)
Memory used 321,304k (± 0.01%) 321,380k (± 0.01%) +77k (+ 0.02%) 321,299k 321,463k
Parse Time 1.27s (± 0.32%) 1.27s (± 0.55%) 0.00s ( 0.00%) 1.25s 1.28s
Bind Time 0.73s (± 0.88%) 0.73s (± 0.61%) +0.00s (+ 0.00%) 0.72s 0.74s
Check Time 4.71s (± 0.36%) 4.71s (± 0.61%) -0.00s (- 0.11%) 4.63s 4.76s
Emit Time 3.22s (± 0.55%) 3.19s (± 0.72%) -0.03s (- 0.96%) 3.15s 3.24s
Total Time 9.93s (± 0.35%) 9.90s (± 0.38%) -0.04s (- 0.35%) 9.79s 9.99s
Angular - node (v8.9.0, x86)
Memory used 198,908k (± 0.02%) 199,088k (± 0.02%) +180k (+ 0.09%) 199,007k 199,179k
Parse Time 2.04s (± 0.59%) 2.04s (± 0.61%) +0.00s (+ 0.15%) 2.02s 2.08s
Bind Time 1.00s (± 0.68%) 1.00s (± 0.59%) -0.00s (- 0.10%) 0.99s 1.02s
Check Time 4.82s (± 0.61%) 4.82s (± 0.72%) -0.01s (- 0.12%) 4.76s 4.91s
Emit Time 6.09s (± 1.35%) 6.08s (± 0.96%) -0.01s (- 0.18%) 5.97s 6.26s
Total Time 13.96s (± 0.52%) 13.94s (± 0.46%) -0.01s (- 0.09%) 13.82s 14.08s
Monaco - node (v8.9.0, x86)
Memory used 204,061k (± 0.02%) 204,107k (± 0.02%) +46k (+ 0.02%) 204,020k 204,199k
Parse Time 1.62s (± 0.61%) 1.61s (± 0.55%) -0.01s (- 0.49%) 1.60s 1.64s
Bind Time 0.75s (± 1.34%) 0.75s (± 1.26%) 0.00s ( 0.00%) 0.73s 0.77s
Check Time 5.41s (± 0.47%) 5.29s (± 1.91%) -0.12s (- 2.22%) 5.08s 5.43s
Emit Time 2.88s (± 0.63%) 2.99s (± 4.11%) +0.11s (+ 3.68%) 2.85s 3.28s
Total Time 10.65s (± 0.26%) 10.63s (± 0.38%) -0.02s (- 0.17%) 10.57s 10.73s
TFS - node (v8.9.0, x86)
Memory used 180,844k (± 0.02%) 180,873k (± 0.02%) +29k (+ 0.02%) 180,773k 180,954k
Parse Time 1.31s (± 0.54%) 1.31s (± 0.57%) +0.00s (+ 0.08%) 1.29s 1.33s
Bind Time 0.69s (± 0.89%) 0.69s (± 0.75%) -0.00s (- 0.29%) 0.68s 0.70s
Check Time 4.48s (± 0.49%) 4.47s (± 0.45%) -0.01s (- 0.18%) 4.43s 4.51s
Emit Time 2.97s (± 1.17%) 2.96s (± 0.57%) -0.01s (- 0.34%) 2.93s 3.00s
Total Time 9.45s (± 0.50%) 9.44s (± 0.36%) -0.02s (- 0.17%) 9.33s 9.51s
Angular - node (v9.0.0, x64)
Memory used 350,297k (± 0.02%) 350,631k (± 0.01%) +334k (+ 0.10%) 350,552k 350,731k
Parse Time 1.84s (± 0.69%) 1.84s (± 0.58%) -0.01s (- 0.38%) 1.81s 1.86s
Bind Time 0.85s (± 1.11%) 0.84s (± 0.81%) -0.01s (- 0.59%) 0.83s 0.86s
Check Time 5.08s (± 0.36%) 5.05s (± 0.68%) -0.03s (- 0.53%) 4.98s 5.15s
Emit Time 5.85s (± 1.46%) 5.89s (± 2.08%) +0.04s (+ 0.70%) 5.58s 6.09s
Total Time 13.62s (± 0.65%) 13.62s (± 0.98%) +0.00s (+ 0.02%) 13.27s 13.88s
Monaco - node (v9.0.0, x64)
Memory used 364,358k (± 0.02%) 364,451k (± 0.02%) +93k (+ 0.03%) 364,226k 364,560k
Parse Time 1.32s (± 0.47%) 1.32s (± 0.28%) -0.00s (- 0.23%) 1.31s 1.32s
Bind Time 0.87s (± 1.80%) 0.87s (± 1.38%) 0.00s ( 0.00%) 0.85s 0.89s
Check Time 5.34s (± 1.58%) 5.34s (± 1.80%) +0.00s (+ 0.07%) 5.12s 5.48s
Emit Time 3.15s (± 5.69%) 3.16s (± 5.61%) +0.01s (+ 0.35%) 2.98s 3.53s
Total Time 10.67s (± 1.09%) 10.69s (± 0.92%) +0.02s (+ 0.17%) 10.56s 10.92s
TFS - node (v9.0.0, x64)
Memory used 321,087k (± 0.01%) 321,108k (± 0.01%) +21k (+ 0.01%) 321,044k 321,192k
Parse Time 1.03s (± 0.84%) 1.03s (± 0.75%) -0.00s (- 0.29%) 1.02s 1.05s
Bind Time 0.68s (± 0.50%) 0.68s (± 0.85%) +0.00s (+ 0.44%) 0.67s 0.69s
Check Time 4.87s (± 0.48%) 4.85s (± 0.45%) -0.02s (- 0.35%) 4.81s 4.91s
Emit Time 3.05s (± 0.51%) 3.03s (± 0.97%) -0.01s (- 0.49%) 2.95s 3.09s
Total Time 9.62s (± 0.31%) 9.59s (± 0.46%) -0.03s (- 0.34%) 9.47s 9.68s
Angular - node (v9.0.0, x86)
Memory used 199,012k (± 0.02%) 199,184k (± 0.02%) +172k (+ 0.09%) 199,055k 199,288k
Parse Time 1.74s (± 0.53%) 1.74s (± 0.57%) -0.00s (- 0.23%) 1.72s 1.76s
Bind Time 0.96s (± 0.47%) 0.96s (± 1.48%) +0.00s (+ 0.31%) 0.93s 1.00s
Check Time 4.51s (± 0.89%) 4.50s (± 0.67%) -0.00s (- 0.11%) 4.44s 4.56s
Emit Time 5.72s (± 0.88%) 5.67s (± 0.44%) -0.05s (- 0.82%) 5.64s 5.76s
Total Time 12.93s (± 0.48%) 12.88s (± 0.47%) -0.05s (- 0.38%) 12.77s 13.03s
Monaco - node (v9.0.0, x86)
Memory used 204,126k (± 0.02%) 204,163k (± 0.01%) +36k (+ 0.02%) 204,112k 204,210k
Parse Time 1.35s (± 0.85%) 1.35s (± 0.63%) -0.00s (- 0.07%) 1.33s 1.37s
Bind Time 0.68s (± 0.53%) 0.68s (± 0.69%) -0.00s (- 0.58%) 0.67s 0.69s
Check Time 5.04s (± 1.89%) 4.97s (± 0.42%) -0.07s (- 1.45%) 4.92s 5.01s
Emit Time 3.12s (± 3.78%) 3.23s (± 0.59%) +0.11s (+ 3.50%) 3.19s 3.28s
Total Time 10.19s (± 0.32%) 10.22s (± 0.40%) +0.03s (+ 0.30%) 10.13s 10.33s
TFS - node (v9.0.0, x86)
Memory used 180,873k (± 0.02%) 180,876k (± 0.03%) +3k (+ 0.00%) 180,714k 180,968k
Parse Time 1.06s (± 0.66%) 1.06s (± 0.91%) -0.00s (- 0.19%) 1.04s 1.09s
Bind Time 0.65s (± 1.06%) 0.65s (± 0.69%) +0.00s (+ 0.47%) 0.64s 0.66s
Check Time 4.36s (± 0.66%) 4.36s (± 0.58%) -0.00s (- 0.05%) 4.31s 4.41s
Emit Time 2.90s (± 0.78%) 2.91s (± 0.95%) +0.01s (+ 0.31%) 2.83s 2.96s
Total Time 8.96s (± 0.48%) 8.97s (± 0.48%) +0.01s (+ 0.08%) 8.92s 9.10s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-161-generic
Architecturex64
Available Memory16 GB
Available Memory8 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
Benchmark Name Iterations
Current 33794 10
Baseline master 10

@rbuckton
Copy link
Contributor Author

rbuckton commented Oct 7, 2019

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 7, 2019

Heya @rbuckton, I've started to run the perf test suite on this PR at f584fcb. You can monitor the build here. It should now contribute to this PR's status checks.

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..33794

Metric master 33794 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 331,538k (± 0.06%) 330,942k (± 0.02%) -596k (- 0.18%) 330,796k 331,088k
Parse Time 1.59s (± 0.76%) 1.59s (± 0.92%) +0.00s (+ 0.32%) 1.56s 1.62s
Bind Time 0.85s (± 0.94%) 0.85s (± 0.99%) +0.00s (+ 0.35%) 0.83s 0.87s
Check Time 4.44s (± 0.44%) 4.45s (± 0.52%) +0.01s (+ 0.29%) 4.41s 4.50s
Emit Time 5.48s (± 0.98%) 5.51s (± 0.98%) +0.03s (+ 0.49%) 5.43s 5.66s
Total Time 12.35s (± 0.57%) 12.41s (± 0.55%) +0.05s (+ 0.42%) 12.26s 12.56s
Monaco - node (v12.1.0, x64)
Memory used 346,642k (± 0.01%) 345,605k (± 0.03%) -1,037k (- 0.30%) 345,313k 345,800k
Parse Time 1.23s (± 0.56%) 1.24s (± 0.63%) +0.01s (+ 1.14%) 1.22s 1.25s
Bind Time 0.73s (± 0.50%) 0.73s (± 0.71%) +0.00s (+ 0.41%) 0.72s 0.74s
Check Time 4.50s (± 0.78%) 4.49s (± 0.57%) -0.01s (- 0.27%) 4.44s 4.55s
Emit Time 3.01s (± 0.93%) 3.02s (± 1.21%) +0.01s (+ 0.33%) 2.96s 3.13s
Total Time 9.46s (± 0.60%) 9.48s (± 0.62%) +0.02s (+ 0.18%) 9.38s 9.67s
TFS - node (v12.1.0, x64)
Memory used 304,890k (± 0.01%) 303,858k (± 0.02%) -1,032k (- 0.34%) 303,729k 304,007k
Parse Time 0.95s (± 0.65%) 0.96s (± 1.15%) +0.01s (+ 1.37%) 0.94s 0.99s
Bind Time 0.69s (± 0.43%) 0.69s (± 0.83%) +0.00s (+ 0.29%) 0.68s 0.70s
Check Time 4.06s (± 0.31%) 4.07s (± 0.47%) +0.01s (+ 0.34%) 4.03s 4.11s
Emit Time 3.10s (± 0.59%) 3.12s (± 0.59%) +0.02s (+ 0.71%) 3.08s 3.16s
Total Time 8.79s (± 0.24%) 8.85s (± 0.45%) +0.05s (+ 0.61%) 8.75s 8.91s
Angular - node (v8.9.0, x64)
Memory used 350,727k (± 0.02%) 350,042k (± 0.03%) -686k (- 0.20%) 349,838k 350,264k
Parse Time 2.12s (± 0.37%) 2.12s (± 0.22%) +0.00s (+ 0.19%) 2.11s 2.13s
Bind Time 0.91s (± 0.49%) 0.91s (± 1.09%) +0.00s (+ 0.55%) 0.90s 0.95s
Check Time 5.29s (± 0.38%) 5.30s (± 0.69%) +0.01s (+ 0.21%) 5.23s 5.37s
Emit Time 6.28s (± 1.62%) 6.33s (± 0.71%) +0.05s (+ 0.83%) 6.26s 6.48s
Total Time 14.60s (± 0.72%) 14.67s (± 0.56%) +0.07s (+ 0.50%) 14.52s 14.91s
Monaco - node (v8.9.0, x64)
Memory used 364,542k (± 0.01%) 363,619k (± 0.02%) -923k (- 0.25%) 363,472k 363,719k
Parse Time 1.58s (± 0.39%) 1.58s (± 0.62%) -0.00s (- 0.06%) 1.56s 1.61s
Bind Time 0.93s (± 0.64%) 0.93s (± 0.75%) -0.00s (- 0.54%) 0.91s 0.95s
Check Time 5.56s (± 1.53%) 5.55s (± 1.43%) -0.01s (- 0.09%) 5.29s 5.70s
Emit Time 3.10s (± 3.18%) 3.13s (± 3.78%) +0.04s (+ 1.19%) 3.06s 3.61s
Total Time 11.17s (± 0.57%) 11.20s (± 0.61%) +0.03s (+ 0.25%) 11.11s 11.42s
TFS - node (v8.9.0, x64)
Memory used 321,301k (± 0.01%) 320,373k (± 0.01%) -928k (- 0.29%) 320,274k 320,471k
Parse Time 1.28s (± 0.45%) 1.28s (± 0.43%) +0.00s (+ 0.39%) 1.27s 1.29s
Bind Time 0.74s (± 0.63%) 0.75s (± 0.80%) +0.01s (+ 0.68%) 0.73s 0.76s
Check Time 4.73s (± 0.54%) 4.75s (± 0.82%) +0.02s (+ 0.38%) 4.68s 4.85s
Emit Time 3.24s (± 0.55%) 3.24s (± 0.65%) 0.00s ( 0.00%) 3.19s 3.28s
Total Time 9.99s (± 0.38%) 10.02s (± 0.55%) +0.03s (+ 0.27%) 9.94s 10.17s
Angular - node (v8.9.0, x86)
Memory used 198,935k (± 0.02%) 198,573k (± 0.03%) -362k (- 0.18%) 198,470k 198,681k
Parse Time 2.05s (± 0.44%) 2.04s (± 0.34%) -0.01s (- 0.24%) 2.02s 2.05s
Bind Time 1.01s (± 0.47%) 1.02s (± 0.65%) +0.01s (+ 0.99%) 1.01s 1.03s
Check Time 4.84s (± 0.48%) 4.81s (± 0.38%) -0.03s (- 0.68%) 4.76s 4.84s
Emit Time 6.17s (± 1.10%) 6.17s (± 1.59%) 0.00s ( 0.00%) 6.00s 6.45s
Total Time 14.06s (± 0.42%) 14.04s (± 0.73%) -0.03s (- 0.20%) 13.87s 14.32s
Monaco - node (v8.9.0, x86)
Memory used 204,071k (± 0.02%) 203,576k (± 0.03%) -496k (- 0.24%) 203,410k 203,664k
Parse Time 1.62s (± 0.69%) 1.62s (± 0.80%) +0.00s (+ 0.06%) 1.60s 1.65s
Bind Time 0.75s (± 1.03%) 0.75s (± 0.99%) -0.00s (- 0.13%) 0.74s 0.77s
Check Time 5.42s (± 0.64%) 5.41s (± 0.41%) -0.01s (- 0.20%) 5.35s 5.47s
Emit Time 2.86s (± 0.67%) 2.87s (± 1.00%) +0.01s (+ 0.24%) 2.83s 2.98s
Total Time 10.65s (± 0.45%) 10.65s (± 0.52%) -0.00s (- 0.02%) 10.58s 10.86s
TFS - node (v8.9.0, x86)
Memory used 180,902k (± 0.01%) 180,394k (± 0.02%) -508k (- 0.28%) 180,328k 180,452k
Parse Time 1.33s (± 2.90%) 1.32s (± 0.70%) -0.01s (- 0.83%) 1.30s 1.34s
Bind Time 0.70s (± 0.95%) 0.69s (± 0.69%) -0.01s (- 1.00%) 0.69s 0.71s
Check Time 4.53s (± 0.96%) 4.51s (± 0.37%) -0.02s (- 0.40%) 4.48s 4.54s
Emit Time 2.99s (± 1.23%) 2.98s (± 1.13%) -0.01s (- 0.23%) 2.90s 3.07s
Total Time 9.55s (± 0.77%) 9.50s (± 0.42%) -0.04s (- 0.45%) 9.44s 9.63s
Angular - node (v9.0.0, x64)
Memory used 350,326k (± 0.01%) 349,561k (± 0.01%) -765k (- 0.22%) 349,472k 349,678k
Parse Time 1.84s (± 0.33%) 1.84s (± 0.71%) +0.00s (+ 0.22%) 1.82s 1.88s
Bind Time 0.85s (± 0.68%) 0.85s (± 0.39%) -0.00s (- 0.00%) 0.84s 0.86s
Check Time 5.11s (± 0.53%) 5.07s (± 0.46%) -0.04s (- 0.76%) 5.02s 5.13s
Emit Time 5.82s (± 1.89%) 5.86s (± 1.61%) +0.04s (+ 0.60%) 5.66s 6.04s
Total Time 13.62s (± 0.75%) 13.61s (± 0.71%) -0.00s (- 0.01%) 13.42s 13.82s
Monaco - node (v9.0.0, x64)
Memory used 364,367k (± 0.01%) 363,310k (± 0.02%) -1,057k (- 0.29%) 363,196k 363,457k
Parse Time 1.32s (± 0.36%) 1.33s (± 0.63%) +0.00s (+ 0.15%) 1.31s 1.35s
Bind Time 0.88s (± 1.28%) 0.88s (± 1.22%) +0.00s (+ 0.23%) 0.85s 0.90s
Check Time 5.38s (± 1.77%) 5.36s (± 1.80%) -0.02s (- 0.33%) 5.14s 5.52s
Emit Time 3.16s (± 5.52%) 3.25s (± 5.55%) +0.08s (+ 2.59%) 3.01s 3.58s
Total Time 10.74s (± 0.88%) 10.81s (± 1.06%) +0.07s (+ 0.66%) 10.57s 11.09s
TFS - node (v9.0.0, x64)
Memory used 321,129k (± 0.02%) 320,106k (± 0.01%) -1,023k (- 0.32%) 320,000k 320,190k
Parse Time 1.04s (± 0.57%) 1.04s (± 0.29%) +0.01s (+ 0.58%) 1.04s 1.05s
Bind Time 0.68s (± 0.54%) 0.69s (± 0.68%) +0.01s (+ 0.73%) 0.68s 0.70s
Check Time 4.92s (± 0.78%) 4.90s (± 0.46%) -0.01s (- 0.28%) 4.86s 4.95s
Emit Time 3.08s (± 0.66%) 3.08s (± 0.80%) +0.00s (+ 0.03%) 3.00s 3.13s
Total Time 9.72s (± 0.44%) 9.71s (± 0.45%) -0.00s (- 0.02%) 9.61s 9.82s
Angular - node (v9.0.0, x86)
Memory used 199,021k (± 0.03%) 198,654k (± 0.03%) -368k (- 0.18%) 198,505k 198,772k
Parse Time 1.76s (± 0.89%) 1.75s (± 0.54%) -0.00s (- 0.17%) 1.74s 1.78s
Bind Time 0.97s (± 1.47%) 0.97s (± 1.47%) -0.00s (- 0.10%) 0.94s 1.00s
Check Time 4.53s (± 0.71%) 4.52s (± 0.58%) -0.01s (- 0.18%) 4.46s 4.57s
Emit Time 5.72s (± 0.73%) 5.72s (± 1.14%) 0.00s ( 0.00%) 5.61s 5.94s
Total Time 12.97s (± 0.49%) 12.96s (± 0.79%) -0.01s (- 0.07%) 12.78s 13.29s
Monaco - node (v9.0.0, x86)
Memory used 204,210k (± 0.02%) 203,723k (± 0.02%) -487k (- 0.24%) 203,608k 203,850k
Parse Time 1.35s (± 0.64%) 1.35s (± 0.37%) -0.00s (- 0.15%) 1.34s 1.36s
Bind Time 0.69s (± 1.37%) 0.69s (± 0.94%) -0.00s (- 0.43%) 0.68s 0.71s
Check Time 5.03s (± 1.12%) 4.95s (± 0.84%) -0.08s (- 1.65%) 4.90s 5.09s
Emit Time 3.20s (± 2.71%) 3.23s (± 0.63%) +0.04s (+ 1.09%) 3.19s 3.30s
Total Time 10.27s (± 0.40%) 10.22s (± 0.44%) -0.05s (- 0.49%) 10.14s 10.36s
TFS - node (v9.0.0, x86)
Memory used 180,847k (± 0.02%) 180,377k (± 0.02%) -470k (- 0.26%) 180,311k 180,502k
Parse Time 1.06s (± 0.66%) 1.07s (± 0.82%) +0.01s (+ 1.04%) 1.06s 1.09s
Bind Time 0.65s (± 0.69%) 0.66s (± 0.91%) +0.01s (+ 1.08%) 0.65s 0.67s
Check Time 4.37s (± 0.39%) 4.35s (± 0.73%) -0.02s (- 0.57%) 4.29s 4.44s
Emit Time 2.91s (± 0.80%) 2.91s (± 1.18%) -0.00s (- 0.03%) 2.82s 2.97s
Total Time 8.99s (± 0.31%) 8.98s (± 0.52%) -0.01s (- 0.09%) 8.90s 9.11s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-161-generic
Architecturex64
Available Memory16 GB
Available Memory8 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
Benchmark Name Iterations
Current 33794 10
Baseline master 10

@rbuckton
Copy link
Contributor Author

rbuckton commented Oct 7, 2019

@ahejlsberg: This seems to improve check time for the following scenarios:

  • Angular, Monaco, and TFS on node v9 for x86/x64
  • Angular, Monaco, and TFS on node v8.9 for x86
  • Monaco on node v8.9 and v12.1 for x64

However it seemed to have no effect on these scenarios:

  • Angular on node v8.9 and v12.1 for x64: +0.01s regression (approx. +0.19%, but within margin of error)
  • TFS on node v8.9 and v12.1 for x64: +0.02s regression (approx. +0.38%, but within margin of error)

This change also reduced overall memory consumption for all scenarios, versions, and cpu architectures.

I'm not entirely sure why this change had little effect on Angular and TFS for those specific scenarios, but will continue to investigate.

@rbuckton
Copy link
Contributor Author

rbuckton commented Oct 8, 2019

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 8, 2019

Heya @rbuckton, I've started to run the perf test suite on this PR at dbf67ac. You can monitor the build here. It should now contribute to this PR's status checks.

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..33794

Metric master 33794 Delta Best Worst
Angular - node (v12.1.0, x64)
Memory used 331,632k (± 0.05%) 330,862k (± 0.12%) -770k (- 0.23%) 329,336k 331,239k
Parse Time 1.57s (± 0.60%) 1.57s (± 0.37%) +0.01s (+ 0.38%) 1.56s 1.59s
Bind Time 0.85s (± 0.80%) 0.84s (± 0.81%) -0.00s (- 0.24%) 0.83s 0.86s
Check Time 4.43s (± 0.59%) 4.45s (± 0.56%) +0.02s (+ 0.36%) 4.39s 4.51s
Emit Time 5.51s (± 0.68%) 5.49s (± 0.64%) -0.02s (- 0.36%) 5.39s 5.55s
Total Time 12.36s (± 0.50%) 12.36s (± 0.36%) -0.00s (- 0.01%) 12.25s 12.46s
Monaco - node (v12.1.0, x64)
Memory used 346,716k (± 0.01%) 345,733k (± 0.02%) -983k (- 0.28%) 345,565k 345,900k
Parse Time 1.23s (± 0.87%) 1.23s (± 0.48%) +0.01s (+ 0.73%) 1.22s 1.25s
Bind Time 0.73s (± 0.50%) 0.73s (± 1.19%) -0.01s (- 0.82%) 0.72s 0.76s
Check Time 4.52s (± 0.45%) 4.49s (± 0.60%) -0.03s (- 0.73%) 4.43s 4.54s
Emit Time 3.04s (± 0.67%) 3.01s (± 0.81%) -0.03s (- 0.86%) 2.97s 3.07s
Total Time 9.52s (± 0.39%) 9.46s (± 0.52%) -0.06s (- 0.62%) 9.38s 9.59s
TFS - node (v12.1.0, x64)
Memory used 304,868k (± 0.02%) 303,905k (± 0.02%) -964k (- 0.32%) 303,800k 304,041k
Parse Time 0.95s (± 0.65%) 0.96s (± 0.88%) +0.01s (+ 1.05%) 0.95s 0.98s
Bind Time 0.69s (± 1.45%) 0.69s (± 0.43%) -0.00s (- 0.43%) 0.69s 0.70s
Check Time 4.07s (± 0.48%) 4.07s (± 0.42%) -0.00s (- 0.12%) 4.02s 4.10s
Emit Time 3.12s (± 0.82%) 3.15s (± 1.89%) +0.04s (+ 1.19%) 3.08s 3.34s
Total Time 8.84s (± 0.46%) 8.88s (± 0.71%) +0.04s (+ 0.41%) 8.75s 9.03s
Angular - node (v8.9.0, x64)
Memory used 350,826k (± 0.02%) 350,105k (± 0.02%) -721k (- 0.21%) 349,888k 350,229k
Parse Time 2.11s (± 0.41%) 2.13s (± 0.44%) +0.01s (+ 0.71%) 2.11s 2.15s
Bind Time 0.90s (± 0.64%) 0.91s (± 1.06%) +0.01s (+ 1.22%) 0.90s 0.93s
Check Time 5.31s (± 0.64%) 5.31s (± 0.53%) +0.00s (+ 0.02%) 5.25s 5.39s
Emit Time 6.33s (± 0.79%) 6.29s (± 0.72%) -0.04s (- 0.57%) 6.22s 6.40s
Total Time 14.65s (± 0.38%) 14.64s (± 0.54%) -0.01s (- 0.08%) 14.48s 14.79s
Monaco - node (v8.9.0, x64)
Memory used 364,753k (± 0.01%) 363,550k (± 0.01%) -1,204k (- 0.33%) 363,407k 363,643k
Parse Time 1.57s (± 0.60%) 1.58s (± 0.46%) +0.00s (+ 0.25%) 1.56s 1.60s
Bind Time 0.93s (± 0.64%) 0.93s (± 0.51%) +0.00s (+ 0.43%) 0.92s 0.94s
Check Time 5.58s (± 0.29%) 5.55s (± 1.03%) -0.02s (- 0.45%) 5.36s 5.65s
Emit Time 3.07s (± 0.60%) 3.13s (± 3.01%) +0.06s (+ 1.92%) 3.05s 3.50s
Total Time 11.15s (± 0.19%) 11.19s (± 0.55%) +0.04s (+ 0.37%) 11.08s 11.38s
TFS - node (v8.9.0, x64)
Memory used 321,426k (± 0.02%) 320,390k (± 0.02%) -1,036k (- 0.32%) 320,244k 320,508k
Parse Time 1.28s (± 0.79%) 1.27s (± 0.46%) -0.00s (- 0.24%) 1.26s 1.29s
Bind Time 0.74s (± 0.83%) 0.74s (± 0.67%) -0.00s (- 0.67%) 0.73s 0.75s
Check Time 4.74s (± 0.69%) 4.74s (± 0.53%) -0.01s (- 0.15%) 4.69s 4.80s
Emit Time 3.22s (± 0.93%) 3.23s (± 0.60%) +0.01s (+ 0.28%) 3.18s 3.27s
Total Time 9.98s (± 0.40%) 9.98s (± 0.36%) -0.01s (- 0.06%) 9.87s 10.03s
Angular - node (v8.9.0, x86)
Memory used 199,000k (± 0.03%) 198,525k (± 0.03%) -474k (- 0.24%) 198,365k 198,631k
Parse Time 2.04s (± 0.93%) 2.04s (± 0.39%) -0.00s (- 0.05%) 2.02s 2.06s
Bind Time 1.02s (± 0.63%) 1.01s (± 0.67%) -0.01s (- 0.68%) 1.00s 1.03s
Check Time 4.83s (± 0.62%) 4.82s (± 0.67%) -0.01s (- 0.19%) 4.72s 4.90s
Emit Time 6.13s (± 1.36%) 6.11s (± 1.60%) -0.02s (- 0.33%) 6.00s 6.39s
Total Time 14.02s (± 0.65%) 13.98s (± 0.79%) -0.04s (- 0.27%) 13.78s 14.29s
Monaco - node (v8.9.0, x86)
Memory used 204,230k (± 0.02%) 203,607k (± 0.02%) -623k (- 0.30%) 203,522k 203,709k
Parse Time 1.62s (± 0.63%) 1.62s (± 0.85%) +0.00s (+ 0.12%) 1.60s 1.67s
Bind Time 0.75s (± 1.07%) 0.75s (± 0.80%) -0.00s (- 0.40%) 0.73s 0.76s
Check Time 5.37s (± 1.25%) 5.35s (± 1.12%) -0.02s (- 0.47%) 5.16s 5.43s
Emit Time 2.93s (± 2.64%) 2.94s (± 3.25%) +0.01s (+ 0.44%) 2.87s 3.29s
Total Time 10.67s (± 0.27%) 10.65s (± 0.46%) -0.01s (- 0.13%) 10.59s 10.82s
TFS - node (v8.9.0, x86)
Memory used 180,972k (± 0.02%) 180,426k (± 0.02%) -546k (- 0.30%) 180,348k 180,493k
Parse Time 1.31s (± 0.71%) 1.31s (± 0.61%) +0.00s (+ 0.00%) 1.30s 1.33s
Bind Time 0.69s (± 0.86%) 0.70s (± 1.17%) +0.00s (+ 0.29%) 0.68s 0.72s
Check Time 4.50s (± 0.59%) 4.47s (± 0.52%) -0.03s (- 0.69%) 4.43s 4.52s
Emit Time 2.97s (± 1.35%) 2.99s (± 0.69%) +0.02s (+ 0.64%) 2.95s 3.03s
Total Time 9.49s (± 0.59%) 9.47s (± 0.13%) -0.01s (- 0.12%) 9.44s 9.50s
Angular - node (v9.0.0, x64)
Memory used 350,361k (± 0.01%) 349,601k (± 0.02%) -760k (- 0.22%) 349,349k 349,753k
Parse Time 1.82s (± 0.55%) 1.84s (± 0.69%) +0.02s (+ 1.21%) 1.81s 1.86s
Bind Time 0.86s (± 0.69%) 0.86s (± 0.86%) +0.00s (+ 0.47%) 0.85s 0.88s
Check Time 5.08s (± 0.85%) 5.09s (± 0.47%) +0.01s (+ 0.16%) 5.03s 5.14s
Emit Time 5.94s (± 1.43%) 5.90s (± 2.04%) -0.04s (- 0.66%) 5.65s 6.17s
Total Time 13.70s (± 0.56%) 13.69s (± 0.89%) -0.00s (- 0.04%) 13.43s 13.94s
Monaco - node (v9.0.0, x64)
Memory used 364,474k (± 0.01%) 363,397k (± 0.02%) -1,077k (- 0.30%) 363,263k 363,542k
Parse Time 1.32s (± 0.46%) 1.32s (± 0.76%) +0.01s (+ 0.68%) 1.31s 1.35s
Bind Time 0.88s (± 1.28%) 0.87s (± 1.02%) -0.01s (- 0.79%) 0.86s 0.90s
Check Time 5.43s (± 1.55%) 5.41s (± 1.41%) -0.02s (- 0.37%) 5.20s 5.51s
Emit Time 3.12s (± 4.66%) 3.14s (± 4.94%) +0.02s (+ 0.61%) 2.99s 3.56s
Total Time 10.74s (± 0.77%) 10.74s (± 0.85%) +0.00s (+ 0.03%) 10.63s 10.98s
TFS - node (v9.0.0, x64)
Memory used 321,092k (± 0.01%) 320,158k (± 0.02%) -933k (- 0.29%) 319,984k 320,291k
Parse Time 1.03s (± 0.72%) 1.04s (± 0.57%) +0.00s (+ 0.29%) 1.02s 1.05s
Bind Time 0.69s (± 0.69%) 0.69s (± 0.58%) +0.00s (+ 0.29%) 0.68s 0.70s
Check Time 4.92s (± 0.31%) 4.90s (± 0.41%) -0.01s (- 0.31%) 4.87s 4.96s
Emit Time 3.06s (± 0.41%) 3.07s (± 0.55%) +0.01s (+ 0.36%) 3.03s 3.11s
Total Time 9.70s (± 0.29%) 9.70s (± 0.34%) +0.00s (+ 0.01%) 9.64s 9.78s
Angular - node (v9.0.0, x86)
Memory used 199,088k (± 0.03%) 198,657k (± 0.02%) -431k (- 0.22%) 198,571k 198,733k
Parse Time 1.73s (± 0.57%) 1.75s (± 0.99%) +0.02s (+ 1.45%) 1.73s 1.81s
Bind Time 0.96s (± 1.09%) 0.96s (± 0.52%) -0.01s (- 0.73%) 0.95s 0.97s
Check Time 4.52s (± 0.58%) 4.52s (± 0.67%) -0.00s (- 0.09%) 4.44s 4.60s
Emit Time 5.70s (± 0.62%) 5.74s (± 1.15%) +0.04s (+ 0.75%) 5.67s 5.99s
Total Time 12.91s (± 0.45%) 12.96s (± 0.36%) +0.05s (+ 0.41%) 12.89s 13.12s
Monaco - node (v9.0.0, x86)
Memory used 204,249k (± 0.02%) 203,691k (± 0.03%) -558k (- 0.27%) 203,570k 203,823k
Parse Time 1.35s (± 0.59%) 1.35s (± 0.59%) +0.00s (+ 0.00%) 1.34s 1.37s
Bind Time 0.69s (± 0.75%) 0.69s (± 0.64%) +0.00s (+ 0.44%) 0.68s 0.70s
Check Time 4.99s (± 0.44%) 4.97s (± 0.37%) -0.02s (- 0.44%) 4.93s 5.02s
Emit Time 3.25s (± 0.86%) 3.26s (± 0.87%) +0.01s (+ 0.31%) 3.20s 3.33s
Total Time 10.28s (± 0.41%) 10.27s (± 0.36%) -0.01s (- 0.09%) 10.20s 10.36s
TFS - node (v9.0.0, x86)
Memory used 180,840k (± 0.02%) 180,388k (± 0.02%) -452k (- 0.25%) 180,326k 180,525k
Parse Time 1.06s (± 0.75%) 1.07s (± 1.32%) +0.01s (+ 1.04%) 1.05s 1.10s
Bind Time 0.65s (± 1.45%) 0.65s (± 1.16%) +0.00s (+ 0.00%) 0.64s 0.68s
Check Time 4.39s (± 0.43%) 4.34s (± 0.53%) -0.05s (- 1.09%) 4.30s 4.39s
Emit Time 2.91s (± 0.75%) 2.95s (± 1.31%) +0.04s (+ 1.37%) 2.90s 3.07s
Total Time 9.01s (± 0.33%) 9.02s (± 0.65%) +0.01s (+ 0.07%) 8.90s 9.17s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-161-generic
Architecturex64
Available Memory16 GB
Available Memory8 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v12.1.0, x64)
  • node (v8.9.0, x64)
  • node (v8.9.0, x86)
  • node (v9.0.0, x64)
  • node (v9.0.0, x86)
Scenarios
  • Angular - node (v12.1.0, x64)
  • Angular - node (v8.9.0, x64)
  • Angular - node (v8.9.0, x86)
  • Angular - node (v9.0.0, x64)
  • Angular - node (v9.0.0, x86)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v8.9.0, x64)
  • Monaco - node (v8.9.0, x86)
  • Monaco - node (v9.0.0, x64)
  • Monaco - node (v9.0.0, x86)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v8.9.0, x64)
  • TFS - node (v8.9.0, x86)
  • TFS - node (v9.0.0, x64)
  • TFS - node (v9.0.0, x86)
Benchmark Name Iterations
Current 33794 10
Baseline master 10

@rbuckton rbuckton marked this pull request as ready for review October 18, 2019 09:50
@rbuckton
Copy link
Contributor Author

I'm still looking for ways to improve the performance here, but these changes at least provide some minor improvements in some cases.

@rbuckton rbuckton merged commit 556da72 into master Oct 19, 2019
@rbuckton rbuckton deleted the optionalChainingPerf branch October 19, 2019 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants