Generic performance testing driver
Follow up from #741 and associated offline discussions, this is what we think the performance tooling should look like for CCF:
A simple C++ driver, taking a sequence of pre-generated frames to send over TLS, from a file. Those can and likely will be generated from a script. The driver should read back response frames, and write them out to a mapped file, interleaved with rdtsc-sourced timestamp. It should also write out send timestamps for indices in the input sequence.
All re-assembly, parsing, and correlation should happen offline, in a script, for flexibility. Any number of these drivers can be started concurrently.
This should help keep the tooling costs down, while getting maximum accuracy and the flexibility we need to obtain global commit and receipt latencies. The surrounding scripts will probably be Python, but could conceivably be written in any language.
https://github.com/WillAllmeida/performance_client
Link #4563 #4555 #4509 #4491 #4489 #4482 #4458 #4429
We will continue to improve Piccolo, but I think this is effectively complete now. Thank you @fotiskoun!
I am glad I was able to contribute!!!