Switch PatternMatcher to use a TemporaryArray instead of ArrayBuilder. #69784
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.
The customer completion profile that I'm looking at shows 5.6% of allocations and 2.1% of CPU in VS during the completion request period are due to allocations in ArrayBuilder.AllocateSlow.
Simple testing on my machine shows > 20,000 roughly concurrent calls to TryUpperCaseCamelCaseMatch, only six of which end up with a non-empty matchedSpans (of size 2 in my test scenario). Instead of hitting some allocations in ArrayBuilder due to such heavy concurrent usage, instead just TemporaryArray which uses stack space for the common case of small arrays.