Define memory log for performance tests #1760
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.
Classic logging does not work well when doing high performance tests, because the writing of logs on disk slows the processes and change the performance. The "memory log" works by allocating a large memory array to capture a series of records of the loss recovery and congestion control state, and writes them to a CSV file when the connection is closed.
Because it needs a very large memory allocation, memory logging cannot be used in production. As implemented in
picoquicdemo
, it is only available if the stack is compiled to use it (defining the flag PICOQUIC_MEMORY_LOG) and if the server is launched with the "-1" option, i.e., serve exactly one connection and then quit.