Skip to content

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.

Screenshot_from_2022-11-07_15-55-53

Svg version for interactive use.

flamy_dz.svg

Edited by Sascha Stahl