Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Only keep HTTP headers we want to keep (#254)
## Which problem is this PR solving? When processing HTTP request/response pairs, the header structs contain a lot of information we do not care about. From profiling data, we can see a large portion of the agent's live bytes are coming from `textproto.readMimeHeader()`, where headers are created. These bytes are held until the request/response pair is processed. This PR adds extracts a copy of the header entries we care about and replaces the Header struct on the request/response, meaning the previous larger Header struct can be GC'd earlier and not wait for pairing to complete. - Closes #253 ## Short description of the changes - Add new extractHeader function that creates a new Header and copies header key/values we want to keep - Initially we only keep "User-Agent" - more can be added in the future - Update HTTP request and response parse funcs to use new extractHeader utility - Add test to verify behaviour of extractHeader ## How to verify that this has the expected result The header that's part of the HTTP request / response now only contains entries we care about and allows the expensive original Header to be cleaned up earlier.
- Loading branch information