http: optimize header map implementation for improved performance #39252
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.
Description:
This PR introduces an optimized implementation of the
HeaderMap
interface that provides better performance for common header operations. It uses a combination of vector and hash map for header storage and lookup. This implementation shows significant performance improvements:This optimization will benefit all Envoy deployments that handle significant HTTP traffic, particularly those with large numbers of headers or high request rates. The improvements in lookup and iteration performance will reduce CPU usage in header processing code paths.
Benchmark
Benchmarks are performed on both MacOS and Linux using the checked in benchmarking suite.
Benchmark Results
Linux
NOTE: Lower is better.
MacOS
NOTE: Lower is better.
Commit Message: http: optimize header map implementation for improved performance
Risk Level: Low
Testing: Unit tests and benchmarks added
Docs Changes: N/A
Release Notes: Added
Platform Specific: No