Skip to content

Switch deferredNodes from a Map to a Set. #46751

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 24, 2021
Merged

Conversation

DanielRosenwasser
Copy link
Member

Something I'm extracting from a larger set of experiments in #46595. What I think I've found is that there's a very small improvement from switching deferredNodes from a Map to a Set, and, well, it makes more sense anyway.

@typescript-bot typescript-bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Nov 9, 2021
@typescript-bot
Copy link
Collaborator

This PR doesn't have any linked issues. Please open an issue that references this PR. From there we can discuss and prioritise.

@DanielRosenwasser
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Nov 9, 2021

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

Update: The results are in!

@typescript-bot
Copy link
Collaborator

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

Here they are:

Comparison Report - main..46751

Metric main 46751 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 354,537k (± 0.02%) 354,509k (± 0.03%) -28k (- 0.01%) 354,317k 354,714k
Parse Time 1.94s (± 0.55%) 1.95s (± 0.37%) +0.01s (+ 0.57%) 1.93s 1.96s
Bind Time 0.85s (± 1.45%) 0.84s (± 0.79%) -0.00s (- 0.59%) 0.83s 0.86s
Check Time 5.48s (± 0.59%) 5.48s (± 0.52%) +0.00s (+ 0.00%) 5.39s 5.52s
Emit Time 5.86s (± 0.58%) 5.86s (± 0.72%) +0.00s (+ 0.03%) 5.78s 5.97s
Total Time 14.13s (± 0.43%) 14.13s (± 0.39%) +0.00s (+ 0.04%) 14.02s 14.25s
Compiler-Unions - node (v10.16.3, x64)
Memory used 204,040k (± 0.04%) 204,019k (± 0.03%) -21k (- 0.01%) 203,889k 204,138k
Parse Time 0.79s (± 1.29%) 0.79s (± 0.66%) +0.00s (+ 0.25%) 0.78s 0.80s
Bind Time 0.52s (± 1.39%) 0.52s (± 1.18%) -0.00s (- 0.19%) 0.51s 0.53s
Check Time 7.86s (± 0.88%) 7.81s (± 0.45%) -0.06s (- 0.71%) 7.74s 7.89s
Emit Time 2.47s (± 0.87%) 2.47s (± 0.62%) -0.01s (- 0.32%) 2.42s 2.49s
Total Time 11.65s (± 0.75%) 11.58s (± 0.38%) -0.06s (- 0.55%) 11.46s 11.67s
Monaco - node (v10.16.3, x64)
Memory used 342,420k (± 0.02%) 342,386k (± 0.02%) -33k (- 0.01%) 342,260k 342,544k
Parse Time 1.48s (± 0.61%) 1.48s (± 0.71%) -0.00s (- 0.27%) 1.44s 1.49s
Bind Time 0.74s (± 0.50%) 0.74s (± 0.54%) -0.00s (- 0.54%) 0.73s 0.75s
Check Time 5.45s (± 0.71%) 5.45s (± 0.66%) -0.01s (- 0.13%) 5.36s 5.50s
Emit Time 3.22s (± 0.86%) 3.19s (± 0.71%) -0.03s (- 0.99%) 3.13s 3.23s
Total Time 10.90s (± 0.52%) 10.85s (± 0.35%) -0.05s (- 0.43%) 10.77s 10.94s
TFS - node (v10.16.3, x64)
Memory used 305,524k (± 0.01%) 305,491k (± 0.01%) -33k (- 0.01%) 305,402k 305,547k
Parse Time 1.20s (± 0.80%) 1.20s (± 0.62%) -0.00s (- 0.08%) 1.18s 1.21s
Bind Time 0.71s (± 0.91%) 0.71s (± 0.63%) 0.00s ( 0.00%) 0.70s 0.72s
Check Time 5.01s (± 0.53%) 4.99s (± 0.69%) -0.02s (- 0.36%) 4.90s 5.07s
Emit Time 3.38s (± 1.54%) 3.34s (± 1.08%) -0.04s (- 1.04%) 3.22s 3.41s
Total Time 10.29s (± 0.61%) 10.24s (± 0.53%) -0.05s (- 0.52%) 10.11s 10.34s
material-ui - node (v10.16.3, x64)
Memory used 471,290k (± 0.01%) 471,272k (± 0.01%) -19k (- 0.00%) 471,142k 471,453k
Parse Time 1.77s (± 0.54%) 1.76s (± 0.34%) -0.01s (- 0.51%) 1.75s 1.78s
Bind Time 0.66s (± 0.79%) 0.66s (± 1.05%) -0.01s (- 0.91%) 0.64s 0.67s
Check Time 14.20s (± 0.44%) 14.10s (± 0.21%) -0.09s (- 0.66%) 14.04s 14.19s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.63s (± 0.39%) 16.52s (± 0.19%) -0.11s (- 0.65%) 16.46s 16.60s
xstate - node (v10.16.3, x64)
Memory used 572,522k (± 1.38%) 569,060k (± 0.02%) -3,463k (- 0.60%) 568,845k 569,344k
Parse Time 2.55s (± 0.32%) 2.55s (± 0.37%) -0.00s (- 0.16%) 2.52s 2.56s
Bind Time 1.01s (± 0.95%) 1.01s (± 0.34%) -0.00s (- 0.40%) 1.00s 1.01s
Check Time 1.50s (± 0.40%) 1.49s (± 0.46%) -0.01s (- 0.74%) 1.47s 1.50s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.12s (± 0.23%) 5.10s (± 0.19%) -0.02s (- 0.37%) 5.09s 5.12s
Angular - node (v12.1.0, x64)
Memory used 332,494k (± 0.02%) 332,386k (± 0.02%) -108k (- 0.03%) 332,163k 332,530k
Parse Time 1.93s (± 0.46%) 1.93s (± 0.67%) +0.00s (+ 0.21%) 1.90s 1.96s
Bind Time 0.81s (± 0.73%) 0.82s (± 0.58%) +0.00s (+ 0.37%) 0.81s 0.83s
Check Time 5.29s (± 0.71%) 5.27s (± 0.39%) -0.02s (- 0.36%) 5.24s 5.33s
Emit Time 6.08s (± 0.39%) 6.08s (± 0.33%) +0.00s (+ 0.00%) 6.01s 6.12s
Total Time 14.10s (± 0.35%) 14.09s (± 0.17%) -0.01s (- 0.08%) 14.02s 14.14s
Compiler-Unions - node (v12.1.0, x64)
Memory used 191,580k (± 0.03%) 191,548k (± 0.04%) -32k (- 0.02%) 191,351k 191,756k
Parse Time 0.77s (± 0.47%) 0.78s (± 0.74%) +0.01s (+ 1.16%) 0.77s 0.79s
Bind Time 0.53s (± 0.65%) 0.53s (± 0.76%) +0.00s (+ 0.38%) 0.52s 0.54s
Check Time 7.29s (± 0.30%) 7.26s (± 0.36%) -0.03s (- 0.37%) 7.22s 7.34s
Emit Time 2.46s (± 0.57%) 2.47s (± 0.72%) +0.00s (+ 0.16%) 2.43s 2.50s
Total Time 11.06s (± 0.19%) 11.04s (± 0.26%) -0.01s (- 0.11%) 10.99s 11.10s
Monaco - node (v12.1.0, x64)
Memory used 325,520k (± 0.02%) 325,438k (± 0.06%) -82k (- 0.03%) 324,777k 325,630k
Parse Time 1.46s (± 0.90%) 1.46s (± 0.59%) -0.00s (- 0.27%) 1.44s 1.48s
Bind Time 0.73s (± 0.41%) 0.73s (± 0.31%) +0.00s (+ 0.14%) 0.72s 0.73s
Check Time 5.31s (± 0.22%) 5.31s (± 0.48%) -0.00s (- 0.09%) 5.24s 5.36s
Emit Time 3.21s (± 0.68%) 3.22s (± 0.95%) +0.00s (+ 0.09%) 3.17s 3.30s
Total Time 10.72s (± 0.31%) 10.71s (± 0.37%) -0.01s (- 0.06%) 10.61s 10.80s
TFS - node (v12.1.0, x64)
Memory used 290,277k (± 0.02%) 290,209k (± 0.02%) -68k (- 0.02%) 290,050k 290,277k
Parse Time 1.21s (± 1.05%) 1.22s (± 0.77%) +0.01s (+ 0.41%) 1.20s 1.24s
Bind Time 0.69s (± 1.25%) 0.69s (± 0.90%) -0.00s (- 0.43%) 0.67s 0.70s
Check Time 4.91s (± 0.54%) 4.91s (± 0.47%) -0.00s (- 0.02%) 4.86s 4.95s
Emit Time 3.36s (± 0.66%) 3.38s (± 0.57%) +0.01s (+ 0.45%) 3.34s 3.41s
Total Time 10.18s (± 0.28%) 10.19s (± 0.39%) +0.02s (+ 0.16%) 10.07s 10.26s
material-ui - node (v12.1.0, x64)
Memory used 450,096k (± 0.01%) 450,098k (± 0.01%) +2k (+ 0.00%) 449,983k 450,235k
Parse Time 1.77s (± 0.50%) 1.78s (± 0.54%) +0.01s (+ 0.51%) 1.76s 1.81s
Bind Time 0.64s (± 1.14%) 0.64s (± 0.73%) +0.00s (+ 0.31%) 0.63s 0.65s
Check Time 12.71s (± 0.48%) 12.64s (± 0.35%) -0.07s (- 0.51%) 12.58s 12.76s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.12s (± 0.43%) 15.07s (± 0.27%) -0.05s (- 0.35%) 15.00s 15.15s
xstate - node (v12.1.0, x64)
Memory used 535,029k (± 0.01%) 535,005k (± 0.02%) -24k (- 0.00%) 534,748k 535,251k
Parse Time 2.48s (± 0.39%) 2.49s (± 0.50%) +0.01s (+ 0.28%) 2.47s 2.52s
Bind Time 1.04s (± 0.71%) 1.04s (± 0.75%) -0.00s (- 0.10%) 1.03s 1.06s
Check Time 1.43s (± 0.45%) 1.43s (± 0.52%) -0.00s (- 0.07%) 1.41s 1.44s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.01s (± 0.21%) 5.02s (± 0.25%) +0.01s (+ 0.24%) 5.00s 5.05s
Angular - node (v14.15.1, x64)
Memory used 330,884k (± 0.01%) 330,813k (± 0.01%) -71k (- 0.02%) 330,777k 330,872k
Parse Time 1.95s (± 0.66%) 1.94s (± 0.48%) -0.01s (- 0.36%) 1.93s 1.97s
Bind Time 0.86s (± 0.95%) 0.86s (± 0.52%) -0.00s (- 0.23%) 0.85s 0.87s
Check Time 5.37s (± 0.41%) 5.39s (± 0.56%) +0.02s (+ 0.39%) 5.34s 5.49s
Emit Time 6.16s (± 0.86%) 6.14s (± 0.41%) -0.02s (- 0.26%) 6.07s 6.20s
Total Time 14.34s (± 0.51%) 14.33s (± 0.29%) -0.01s (- 0.06%) 14.25s 14.42s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,110k (± 0.60%) 192,750k (± 0.49%) +641k (+ 0.33%) 190,174k 193,456k
Parse Time 0.81s (± 0.28%) 0.81s (± 0.64%) +0.00s (+ 0.25%) 0.80s 0.82s
Bind Time 0.55s (± 0.89%) 0.55s (± 0.40%) -0.00s (- 0.54%) 0.55s 0.56s
Check Time 7.32s (± 0.34%) 7.35s (± 0.41%) +0.04s (+ 0.52%) 7.28s 7.44s
Emit Time 2.46s (± 0.67%) 2.48s (± 0.77%) +0.02s (+ 0.94%) 2.43s 2.52s
Total Time 11.13s (± 0.28%) 11.19s (± 0.37%) +0.06s (+ 0.54%) 11.07s 11.29s
Monaco - node (v14.15.1, x64)
Memory used 324,325k (± 0.00%) 324,279k (± 0.01%) -47k (- 0.01%) 324,242k 324,343k
Parse Time 1.50s (± 0.33%) 1.51s (± 0.55%) +0.01s (+ 0.74%) 1.49s 1.53s
Bind Time 0.76s (± 0.65%) 0.75s (± 0.48%) -0.00s (- 0.26%) 0.75s 0.76s
Check Time 5.28s (± 0.42%) 5.25s (± 0.29%) -0.03s (- 0.49%) 5.22s 5.30s
Emit Time 3.24s (± 0.69%) 3.22s (± 0.52%) -0.02s (- 0.59%) 3.20s 3.27s
Total Time 10.77s (± 0.43%) 10.73s (± 0.26%) -0.03s (- 0.33%) 10.69s 10.82s
TFS - node (v14.15.1, x64)
Memory used 289,164k (± 0.01%) 289,140k (± 0.00%) -23k (- 0.01%) 289,115k 289,156k
Parse Time 1.23s (± 0.67%) 1.23s (± 0.47%) +0.00s (+ 0.33%) 1.22s 1.24s
Bind Time 0.73s (± 0.64%) 0.73s (± 0.61%) +0.00s (+ 0.27%) 0.72s 0.74s
Check Time 4.90s (± 0.10%) 4.90s (± 0.46%) +0.01s (+ 0.16%) 4.86s 4.95s
Emit Time 3.49s (± 0.74%) 3.50s (± 0.81%) +0.00s (+ 0.00%) 3.45s 3.59s
Total Time 10.35s (± 0.32%) 10.36s (± 0.38%) +0.01s (+ 0.12%) 10.29s 10.47s
material-ui - node (v14.15.1, x64)
Memory used 448,236k (± 0.06%) 448,169k (± 0.06%) -68k (- 0.02%) 447,140k 448,304k
Parse Time 1.83s (± 0.51%) 1.82s (± 0.32%) -0.00s (- 0.27%) 1.81s 1.83s
Bind Time 0.68s (± 0.70%) 0.68s (± 0.55%) -0.00s (- 0.30%) 0.67s 0.68s
Check Time 12.80s (± 0.56%) 12.82s (± 0.65%) +0.03s (+ 0.21%) 12.71s 13.00s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.31s (± 0.52%) 15.32s (± 0.55%) +0.02s (+ 0.10%) 15.19s 15.50s
xstate - node (v14.15.1, x64)
Memory used 532,774k (± 0.01%) 532,791k (± 0.01%) +17k (+ 0.00%) 532,725k 532,906k
Parse Time 2.56s (± 0.35%) 2.55s (± 0.75%) -0.01s (- 0.23%) 2.52s 2.61s
Bind Time 1.15s (± 0.63%) 1.15s (± 1.17%) -0.00s (- 0.17%) 1.13s 1.19s
Check Time 1.48s (± 0.52%) 1.48s (± 0.46%) 0.00s ( 0.00%) 1.46s 1.49s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.25s (± 0.32%) 5.25s (± 0.60%) -0.00s (- 0.06%) 5.20s 5.35s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-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)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 46751 10
Baseline main 10

Developer Information:

Download Benchmark

@amcasey
Copy link
Member

amcasey commented Nov 22, 2021

It certainly makes more sense conceptually, but it's not at all obvious to me that this would result in a performance improvement and, if it does, that that improvement would apply to more than one environment.

Copy link
Member

@amcasey amcasey left a comment

Choose a reason for hiding this comment

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

If @rbuckton doesn't have specific reasons for keeping it like this, LGTM

@DanielRosenwasser DanielRosenwasser merged commit a90389a into main Nov 24, 2021
@DanielRosenwasser DanielRosenwasser deleted the deferredNodesSet branch November 24, 2021 01:46
mprobst pushed a commit to mprobst/TypeScript that referenced this pull request Jan 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants