One open problem of RxFiddle is scalability and overview. RxFiddle can instrument large applications just fine. As an example I instrumented RxFiddle with itself and this works. The data collection works and can be exported to JSON.
The problem lies with the performance of rendering the dependency graphs. The graph structure can become huge when using higher order streams. The layout is based on the StoryFlow paper and my custom implementation of what they describe is clearly not optimal. The layout works in different phases:
- ranking (DAG rank from Dagre)
- ordening of nodes per rank (each rank corresponds to a time slice from StoryFlow)
- calculate weighted medians of connected nodes
- transpose using storyflow method (minimizing crossings) in 2 passes (1 up, 1 down)
- check if cost of ordering (amount of crossings) is less than before
- repeat iteratively (20 times, up down sweeping) until cost becomes stable
- priority layout
- realign nodes in iterative fashion (storyflow methodology) assigning x/y coordinates to nodes
- render SVG
For many nodes the ordering and priority layouting becomes very heavy as it is polynomial.
By reducing the amount of nodes we can greatly improve the experience.
Any ideas are welcome. I like to work to something like Tensorflow Graph Visualization which happens to be open source.
One open problem of RxFiddle is scalability and overview. RxFiddle can instrument large applications just fine. As an example I instrumented RxFiddle with itself and this works. The data collection works and can be exported to JSON.
The problem lies with the performance of rendering the dependency graphs. The graph structure can become huge when using higher order streams. The layout is based on the StoryFlow paper and my custom implementation of what they describe is clearly not optimal. The layout works in different phases:
For many nodes the ordering and priority layouting becomes very heavy as it is polynomial.
By reducing the amount of nodes we can greatly improve the experience.
Any ideas are welcome. I like to work to something like Tensorflow Graph Visualization which happens to be open source.