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

Fix preserveSourceNewlines sibling node comparison (fixes extra newlines in organize imports) #42630

Merged
merged 40 commits into from
Feb 26, 2021

Conversation

andrewbranch
Copy link
Member

This is @armanio123’s #41927 with an extra two commits on top.

Fixes #41417.

@typescript-bot typescript-bot added the For Milestone Bug PRs that fix a bug with a specific milestone label Feb 3, 2021
@@ -3,4 +3,5 @@ var v = { a
return;

//// [parserErrorRecovery_ObjectLiteral2.js]
var v = { a: a, "return": };
var v = { a: a,
"return": };
Copy link
Member Author

Choose a reason for hiding this comment

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

These JS baseline changes are reverting back to their original state pre-#36688. That PR was never really meant to change JS emit, but the couple changes that did occur seemed ok so we went with it. Since siblingNodePositionsAreComparable might do a little more work than what’s currently happening in master, I reverted the codepath that non-codefix/refactor emit takes back to the way it originally was.

Copy link
Member Author

Choose a reason for hiding this comment

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

siblingNodePositionsAreComparable is now quite cheap, but I think it still makes sense to keep it out of JS emit for now.

@rbuckton
Copy link
Member

rbuckton commented Feb 4, 2021

@typescript-bot perf test

@andrewbranch andrewbranch requested a review from rbuckton February 5, 2021 18:39
@rbuckton
Copy link
Member

rbuckton commented Feb 6, 2021

Looks like the bot trigger for perf tests didn't pick up my command due to a typo in the regexp.

@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 77b1902. 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..42630

Metric master 42630 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 345,596k (± 0.01%) 345,661k (± 0.03%) +65k (+ 0.02%) 345,435k 345,850k
Parse Time 1.93s (± 0.76%) 1.91s (± 0.61%) -0.01s (- 0.62%) 1.88s 1.94s
Bind Time 0.83s (± 1.16%) 0.83s (± 1.35%) +0.00s (+ 0.24%) 0.81s 0.86s
Check Time 4.96s (± 0.64%) 4.97s (± 0.65%) +0.01s (+ 0.16%) 4.86s 5.03s
Emit Time 5.27s (± 0.81%) 5.30s (± 0.86%) +0.03s (+ 0.57%) 5.22s 5.41s
Total Time 12.98s (± 0.63%) 13.01s (± 0.54%) +0.03s (+ 0.20%) 12.82s 13.14s
Compiler-Unions - node (v10.16.3, x64)
Memory used 214,377k (± 0.08%) 214,459k (± 0.03%) +82k (+ 0.04%) 214,314k 214,611k
Parse Time 0.78s (± 0.61%) 0.78s (± 0.83%) +0.00s (+ 0.13%) 0.76s 0.79s
Bind Time 0.50s (± 1.45%) 0.50s (± 1.29%) 0.00s ( 0.00%) 0.49s 0.51s
Check Time 10.65s (± 0.55%) 10.68s (± 0.69%) +0.03s (+ 0.23%) 10.54s 10.83s
Emit Time 2.34s (± 1.94%) 2.33s (± 1.04%) -0.01s (- 0.21%) 2.28s 2.39s
Total Time 14.27s (± 0.63%) 14.29s (± 0.58%) +0.02s (+ 0.14%) 14.17s 14.52s
Monaco - node (v10.16.3, x64)
Memory used 355,241k (± 0.03%) 355,277k (± 0.03%) +36k (+ 0.01%) 354,974k 355,564k
Parse Time 1.55s (± 0.50%) 1.55s (± 0.66%) -0.00s (- 0.13%) 1.53s 1.57s
Bind Time 0.73s (± 1.04%) 0.72s (± 1.05%) -0.00s (- 0.14%) 0.71s 0.74s
Check Time 5.12s (± 0.66%) 5.12s (± 0.38%) +0.01s (+ 0.14%) 5.07s 5.16s
Emit Time 2.81s (± 1.08%) 2.78s (± 0.74%) -0.03s (- 1.07%) 2.75s 2.84s
Total Time 10.21s (± 0.44%) 10.18s (± 0.29%) -0.02s (- 0.24%) 10.14s 10.26s
TFS - node (v10.16.3, x64)
Memory used 308,147k (± 0.02%) 308,157k (± 0.01%) +10k (+ 0.00%) 308,093k 308,279k
Parse Time 1.21s (± 0.55%) 1.21s (± 0.66%) +0.00s (+ 0.17%) 1.20s 1.23s
Bind Time 0.68s (± 0.65%) 0.68s (± 0.81%) 0.00s ( 0.00%) 0.67s 0.70s
Check Time 4.60s (± 0.50%) 4.61s (± 0.58%) +0.01s (+ 0.28%) 4.57s 4.69s
Emit Time 2.96s (± 0.87%) 2.93s (± 1.37%) -0.03s (- 0.95%) 2.83s 3.00s
Total Time 9.45s (± 0.41%) 9.43s (± 0.59%) -0.02s (- 0.21%) 9.34s 9.60s
material-ui - node (v10.16.3, x64)
Memory used 495,587k (± 0.01%) 495,603k (± 0.01%) +16k (+ 0.00%) 495,475k 495,664k
Parse Time 1.98s (± 0.82%) 1.99s (± 0.78%) +0.00s (+ 0.20%) 1.96s 2.03s
Bind Time 0.66s (± 0.76%) 0.66s (± 0.98%) +0.00s (+ 0.46%) 0.65s 0.67s
Check Time 14.04s (± 0.81%) 14.02s (± 0.66%) -0.02s (- 0.14%) 13.83s 14.17s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 16.68s (± 0.75%) 16.67s (± 0.63%) -0.01s (- 0.07%) 16.44s 16.87s
Angular - node (v12.1.0, x64)
Memory used 323,221k (± 0.01%) 323,276k (± 0.02%) +55k (+ 0.02%) 323,184k 323,444k
Parse Time 1.91s (± 0.43%) 1.91s (± 0.68%) -0.01s (- 0.37%) 1.88s 1.93s
Bind Time 0.80s (± 0.93%) 0.80s (± 0.87%) +0.00s (+ 0.13%) 0.79s 0.82s
Check Time 4.85s (± 0.53%) 4.86s (± 0.56%) +0.01s (+ 0.27%) 4.82s 4.92s
Emit Time 5.47s (± 1.46%) 5.45s (± 1.42%) -0.02s (- 0.33%) 5.34s 5.69s
Total Time 13.03s (± 0.54%) 13.02s (± 0.56%) -0.01s (- 0.08%) 12.90s 13.22s
Compiler-Unions - node (v12.1.0, x64)
Memory used 199,817k (± 0.09%) 199,790k (± 0.07%) -27k (- 0.01%) 199,512k 200,137k
Parse Time 0.77s (± 0.91%) 0.77s (± 1.04%) -0.00s (- 0.39%) 0.75s 0.79s
Bind Time 0.50s (± 0.80%) 0.50s (± 0.68%) -0.00s (- 0.80%) 0.49s 0.50s
Check Time 9.72s (± 0.92%) 9.75s (± 0.79%) +0.03s (+ 0.32%) 9.54s 9.94s
Emit Time 2.35s (± 1.50%) 2.36s (± 1.59%) +0.01s (+ 0.51%) 2.30s 2.49s
Total Time 13.34s (± 0.69%) 13.37s (± 0.69%) +0.04s (+ 0.28%) 13.13s 13.53s
Monaco - node (v12.1.0, x64)
Memory used 337,612k (± 0.03%) 337,552k (± 0.02%) -60k (- 0.02%) 337,407k 337,628k
Parse Time 1.53s (± 0.78%) 1.53s (± 0.82%) +0.00s (+ 0.07%) 1.51s 1.57s
Bind Time 0.71s (± 0.85%) 0.71s (± 1.26%) +0.00s (+ 0.14%) 0.69s 0.73s
Check Time 4.93s (± 0.80%) 4.93s (± 0.75%) -0.01s (- 0.18%) 4.82s 5.01s
Emit Time 2.87s (± 0.98%) 2.85s (± 0.84%) -0.02s (- 0.77%) 2.81s 2.91s
Total Time 10.05s (± 0.58%) 10.02s (± 0.72%) -0.03s (- 0.30%) 9.87s 10.22s
TFS - node (v12.1.0, x64)
Memory used 292,323k (± 0.02%) 292,389k (± 0.02%) +65k (+ 0.02%) 292,273k 292,485k
Parse Time 1.23s (± 0.56%) 1.23s (± 0.98%) +0.00s (+ 0.08%) 1.20s 1.25s
Bind Time 0.66s (± 0.68%) 0.65s (± 0.56%) -0.00s (- 0.61%) 0.65s 0.66s
Check Time 4.51s (± 0.56%) 4.51s (± 0.53%) -0.01s (- 0.20%) 4.45s 4.55s
Emit Time 2.96s (± 1.94%) 2.91s (± 0.95%) -0.05s (- 1.69%) 2.84s 2.97s
Total Time 9.36s (± 0.80%) 9.30s (± 0.58%) -0.06s (- 0.62%) 9.17s 9.39s
material-ui - node (v12.1.0, x64)
Memory used 472,781k (± 0.01%) 472,674k (± 0.05%) -107k (- 0.02%) 471,732k 472,862k
Parse Time 2.00s (± 0.82%) 2.00s (± 0.38%) -0.01s (- 0.40%) 1.98s 2.01s
Bind Time 0.64s (± 0.69%) 0.64s (± 0.87%) 0.00s ( 0.00%) 0.63s 0.65s
Check Time 12.54s (± 0.61%) 12.58s (± 0.84%) +0.04s (+ 0.31%) 12.41s 12.80s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.19s (± 0.52%) 15.22s (± 0.73%) +0.03s (+ 0.19%) 15.05s 15.46s
Angular - node (v14.15.1, x64)
Memory used 321,864k (± 0.01%) 321,851k (± 0.01%) -14k (- 0.00%) 321,808k 321,904k
Parse Time 1.91s (± 0.49%) 1.90s (± 0.49%) -0.01s (- 0.31%) 1.89s 1.93s
Bind Time 0.85s (± 0.53%) 0.85s (± 0.47%) +0.00s (+ 0.35%) 0.84s 0.86s
Check Time 4.85s (± 0.39%) 4.86s (± 0.25%) +0.00s (+ 0.08%) 4.82s 4.88s
Emit Time 5.47s (± 0.20%) 5.47s (± 0.54%) -0.01s (- 0.15%) 5.39s 5.53s
Total Time 13.08s (± 0.15%) 13.08s (± 0.33%) -0.01s (- 0.05%) 12.99s 13.16s
Compiler-Unions - node (v14.15.1, x64)
Memory used 200,440k (± 0.56%) 200,757k (± 0.57%) +317k (+ 0.16%) 199,013k 202,940k
Parse Time 0.80s (± 0.60%) 0.80s (± 0.70%) +0.00s (+ 0.13%) 0.79s 0.81s
Bind Time 0.53s (± 0.76%) 0.53s (± 0.76%) 0.00s ( 0.00%) 0.52s 0.54s
Check Time 9.68s (± 0.78%) 9.68s (± 0.40%) -0.01s (- 0.06%) 9.60s 9.76s
Emit Time 2.36s (± 1.24%) 2.38s (± 2.18%) +0.03s (+ 1.15%) 2.30s 2.54s
Total Time 13.36s (± 0.64%) 13.39s (± 0.33%) +0.02s (+ 0.18%) 13.26s 13.46s
Monaco - node (v14.15.1, x64)
Memory used 336,824k (± 0.00%) 336,844k (± 0.01%) +20k (+ 0.01%) 336,771k 336,901k
Parse Time 1.57s (± 0.57%) 1.56s (± 0.74%) -0.01s (- 0.57%) 1.54s 1.60s
Bind Time 0.73s (± 1.06%) 0.73s (± 0.55%) -0.00s (- 0.27%) 0.72s 0.74s
Check Time 4.85s (± 0.47%) 4.86s (± 0.62%) +0.00s (+ 0.08%) 4.82s 4.96s
Emit Time 2.91s (± 0.68%) 2.93s (± 1.06%) +0.02s (+ 0.72%) 2.88s 3.04s
Total Time 10.06s (± 0.34%) 10.07s (± 0.53%) +0.01s (+ 0.09%) 10.01s 10.27s
TFS - node (v14.15.1, x64)
Memory used 291,545k (± 0.01%) 291,557k (± 0.01%) +12k (+ 0.00%) 291,532k 291,603k
Parse Time 1.25s (± 1.03%) 1.25s (± 2.13%) -0.00s (- 0.40%) 1.21s 1.34s
Bind Time 0.69s (± 0.86%) 0.69s (± 1.18%) -0.00s (- 0.58%) 0.68s 0.71s
Check Time 4.49s (± 0.36%) 4.49s (± 0.68%) -0.01s (- 0.18%) 4.44s 4.58s
Emit Time 3.04s (± 0.94%) 3.04s (± 0.94%) -0.00s (- 0.03%) 2.98s 3.10s
Total Time 9.48s (± 0.30%) 9.46s (± 0.60%) -0.02s (- 0.18%) 9.37s 9.62s
material-ui - node (v14.15.1, x64)
Memory used 471,451k (± 0.06%) 471,464k (± 0.05%) +12k (+ 0.00%) 470,464k 471,615k
Parse Time 2.06s (± 0.46%) 2.05s (± 0.90%) -0.01s (- 0.29%) 2.01s 2.09s
Bind Time 0.70s (± 0.67%) 0.70s (± 0.68%) -0.00s (- 0.43%) 0.69s 0.71s
Check Time 12.67s (± 1.39%) 12.59s (± 0.74%) -0.07s (- 0.59%) 12.40s 12.84s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.42s (± 1.15%) 15.34s (± 0.58%) -0.08s (- 0.52%) 15.16s 15.57s
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 42630 10
Baseline master 10

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.

Typescript "Organize Imports" action inserts loads of blank lines in import statements
5 participants