-
Notifications
You must be signed in to change notification settings - Fork 14
Description
JCallGraphRecorder doesn't appear to produce a call graph entry for data produced by an Unfolder.
This makes sense, because the unfolder doesn't have a "caller" at the time Unfold() gets called; it is another Eulerian component just like JEventSource and JEventProcessor. A good solution would handle Eulerian components more generally.
The call graph recording machinery predates the big JFactory/JMultifactory/JOmniFactory refactor, and is probably making assumptions (about JFactories producing exactly one databundle) which no longer apply. So now is a good time to revisit this.
An ambitious solution would recognize that there are separate, unrelated mechanisms for timing JComponents vs JArrows, and both pieces of information are necessary to understand what is going on in a nontrivial topology. Even if the mechanisms don't get unified, the output definitely should. We may want the component-level JCallGraphRecorder to check which arrow is running, rather than making an assumption, because if the wrong arrow somehow ended up calling a factory, it could have significant performance implications.