A few more small items for this perf pass before calling it good: - [x] Don't allocate PooledStreamEncoder (class can be merged into Router, not used anywhere else) - [x] Cache date string for date header every 500ms or so - [ ] Store integer headers as integers also to avoid converting back and forth - [x] Optimize buffer callbacks - [ ] Remove locking from libevent base - [x] 0 copy grpc encode - [x] Only do PNRG in runtime when needed - [ ] stat flushing code - [x] Don't copy http/2 static headers when encoding - [ ] remove fmt::format from dynamic stats in router - [x] remove copy from path match route action - [ ] allocate "light" host when doing service discovery so we don't allocate full stat block which we never use. - [ ] ```std::vector<nghttp2_settings_entry> iv``` in http2 codec can be a fixed array
A few more small items for this perf pass before calling it good:
std::vector<nghttp2_settings_entry> ivin http2 codec can be a fixed array