Reduce allocations in XmlDocumentationProvider.GetDocumentationForSymbol#80287
Merged
ToddGrun merged 2 commits intodotnet:mainfrom Sep 16, 2025
Merged
Conversation
Switches the method from XDocument usage to just using the XmlReader directly. I do notice one *slight* difference between the two, the old way ends up \n in the document to \r\n whereas the new way doesn't do that conversion. I don't *think* that should have an effect on rendering, but I thought I should mention it.
Contributor
Author
|
@dotnet/roslyn-ide -- ptal and let me know if you want me to kick off a perf run to get numbers with the change. |
jasonmalinowski
approved these changes
Sep 16, 2025
This was referenced Oct 27, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switches the method from XDocument usage to just using the XmlReader directly.
I do notice one slight difference between the two, the old way ends up converting "\n" in the document to "\r\n" whereas the new way doesn't do that conversion. I don't think that should have an effect on rendering, but I thought I should mention it.
XmlDocumentationProvider.GetDocumentationForSymbol accounts for 1.4% of total allocations in the ServiceHub process in the razor cohosting speedometer test. I haven't run an insertion against this, but I'm confident that this new way will reduce this number.