no vtable dispatch during node sequence traversal in scheduler
the traversable sequence of basic nodes is now actually a vector<BasicNode*>
instead of vector<VNode*>
, as we don't need runtime polymorphism in there
speeds up by 2.5% in a benchmark with 1000 trigger lines, 10 dummy nodes each (see benchmark script for reproducibility)
other data:
can run 4.05k evts/s on 20 threads
1 numa node (lbquantaperf01)
1000 lines, 10 nodes/line
using the full algexecstatesvc bypass + evtstoresvc. (the best of the best)