[statsd] Improve tag normalization speed #672
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.
What does this PR do?
Speeds up the tag normalization function. By being in the hot path in
statsd
, this improves theperformance of
statsd
significantly (~30% reduction in latency, CPU utilization, and benchmark duration across the board).Since this function is used in the
submit()
API too, it may offer significant performance improvement there as well.Description of the Change
normalize_tags
functionFixes #671
Alternate Designs
Possible Drawbacks
None
Verification Process
python3 -m unittest -vvv tests.unit.util.test_format.TestNormalizeTags
and/orpython2 -m unittest -vvv tests.unit.util.test_format.TestNormalizeTags
Additional Notes
Benchmark results vs main branch:
Release Notes
Review checklist (to be filled by reviewers)
changelog/
label attached. If applicable it should have thebackward-incompatible
label attached.do-not-merge/
label attached.kind/
andseverity/
labels attached at least.