Skip to content

Improved performance of splitAroundQuotation - #5599

Merged
KevinRansom merged 2 commits into
dotnet:masterfrom
TIHan:split-perf-fix
Sep 12, 2018
Merged

KevinRansom merged 2 commits into
dotnet:masterfrom
TIHan:split-perf-fix

Conversation

@TIHan

@TIHan TIHan commented Sep 6, 2018

Copy link
Copy Markdown
Contributor

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

@cartermp

cartermp commented Sep 6, 2018

Copy link
Copy Markdown
Contributor

@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

cartermp commented Sep 7, 2018

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@cartermp

Copy link
Copy Markdown
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