-
Notifications
You must be signed in to change notification settings - Fork 5.3k
perf: more efficient header processing #120
Copy link
Copy link
Closed
Labels
Description
As part of recent profiling comparison with nginx:
Right now how Envoy handles headers is extremely inefficient. We use a list, along with std::string, and generally iterate over the entire list for remove operations, etc.
Move to a more efficient implementation that:
- Looks at each header on receive and store direct pointer into the list if Envoy will ever use it (via hash lookup). All add/remove/modify operations become O(1).
- Move away from std::string, implement explicit short string optimization, with sentinel for common headers.
Reactions are currently unavailable