FunTuple decodes decay descriptor in every event
Running DaVinci with FunTuple on many events locally, I noticed that it is quite slow. The time per event almost did not change if events have candidates or not. I made a flamegraph running DaVinci on a few thousand events, initialization and finalize are excluded from the flamegraph, only the event loop is benchmarked. It can be seen that a huge chunk of the processing time is spent in parsing the decay descriptor. The pink boxes on the right are the actual evaluation of the functors, the small box right of them is the writing of the tuple.
Looking at the code, the parsing is done in every event while it should probably only be done once in initialize.
Svg version for interactive use.
Edited by Sascha Stahl