This PR adds performance profiling to the simulation. Each function of which the duration should be measured and logged is passed to measure_duration in src/simulation/performance_profiling/performance_proto.rs. This function starts a timer before executing the function. Each measurement produces a ProfilingEvent, which consists of
key
duration
metadata
It will be protobuf encoded (Vec<u8>) and then base64 encoded (String). The base64 string is printed as attribute to the trace log. Each process stores it's trace in a separate file.
The performance log then has entries like the following one:
This PR adds performance profiling to the simulation. Each function of which the duration should be measured and logged is passed to
measure_duration
in src/simulation/performance_profiling/performance_proto.rs. This function starts a timer before executing the function. Each measurement produces aProfilingEvent
, which consists ofIt will be protobuf encoded (
Vec<u8>
) and then base64 encoded (String
). The base64 string is printed as attribute to the trace log. Each process stores it's trace in a separate file.The performance log then has entries like the following one: