Avoid compiling regexes in ObjectJsonStreamer #2008
Merged
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.
Goal
Reduce the overhead of constructing
ObjectJsonStreamer
instances (and therefore leaving complex breadcrumbs) by sharing the defaultredactedKeys
(which is immutable).Design
An
ObjectJsonStreamer
is allocated internally each time a breadcrumb metadata item needs to be JSON encoded early (because it is too complex for the NDK layer to handle directly). Each of these was causing the defaultredactedKeys
pattern to be compiled. Since the defaultredactedKeys
set is immutable, it can be safely shared instead.Testing
Relied on existing tests.