The sea-of-nodes layout algorithm (implemented in the HierarchicalStableLayoutManager class) is noticeably slower than its non-stable counterpart. This slowdown is almost entirely caused by the HierarchicalStableLayoutManager::ensureNeighborEdgeConsistency(). This method is a mechanism to ensure that different graph data structures (node succs/preds lists and edge from-to fields) are synchronized after each main step in the algorithm. Instead of running this conservative and costly workaround, we should identify and fix the step in which the graph data structures go out of sync.
- relates to
-
JDK-8309463 IGV: Dynamic graph layout algorithm
- Resolved