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

Improved performance of splitAroundQuotation #5599

Merged
merged 2 commits into from
Sep 12, 2018

Conversation

TIHan
Copy link
Contributor

@TIHan TIHan commented Sep 6, 2018

This increases perf of splitAroundQuotation up to 50% and reduces GC 0 allocation counts by 60-70% roughly.

@cartermp
Copy link
Contributor

cartermp commented Sep 6, 2018

@Horusiath this is the hot path for the report you sent us. When this is merged and a nightly is produced, would you be interested in trying out the nightly when using your code that makes use of Type Providers? Based on some perf testing we think this should help.

@TIHan TIHan closed this Sep 6, 2018
@TIHan TIHan reopened this Sep 6, 2018
@TIHan TIHan closed this Sep 6, 2018
@TIHan TIHan reopened this Sep 6, 2018
@cartermp cartermp requested a review from dsyme September 6, 2018 23:50
@cartermp
Copy link
Contributor

cartermp commented Sep 7, 2018

FYI in our own testing, we saw an order of magnitude reduction in gen0 allocations with this change.

The trace analyzed had 50% of CPU time focused on GC collections, almost all from gen0, with the bulk of them (~70%) coming ultimately from this routine.
image

So this should hopefully make things better when working with Type Providers that produce large numbers of provided types.

@vasily-kirichenko
Copy link
Contributor

@cartermp What is the tool that produces that table with profiling results?

@cartermp
Copy link
Contributor

PerfView: https://github.com/Microsoft/perfview

  • Load an ETL trace
  • The table is in GCStats

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.

4 participants