-
Notifications
You must be signed in to change notification settings - Fork 350
Open
Labels
Description
When making changes of the wire protocol, we should take into account the effect on CPU usage, memory usage and network bandwidth. For this we need some tooling for doing (nearly) reproducible benchmarks.
Roughly, my thoughts are
- record data passed to the Reporter
- replay previously recorded data (with the same order and timing!)
- record the uncompressed on-wire messages (protobuf blobs)
- a benchmark Go tool that does compression and decompression of the protobuf messages (Go because we want to measure the Go implementations of the compressors)
- a python tool to generate diagrams / tables from the results of the Go tool
The recorded data can be replayed multiple times, e.g. with and without a protocol implementation change, to allow comparisons of the change's effects.
