From: Dave A. <dc...@mi...> - 2004-03-31 21:34:28
|
We're continuing our evaluations, and generally quite happy with Jung overall. I have a couple of specific pieces of feedback that you are welcome to take for what they're worth. First, we saw a performance scalability issue that may be quite easy to resolve. This is on the order of 10,000 vertices and 100,000 edges. Constructing a graph (separate from visualizing it) took quite a long time, and a substantial chunk of that was due to the duplicate edge checking. Specifically, the fact that the AbstractSparseGraph maintains HashMaps of edges and nodes keyed by Integer objects denoting the edge and node IDs, while the edges and nodes return ints for their ids. This means every addition (and many other operations) causes a "new Integer()" construction. Would it make more sense to use the ID as the object's hashCode and use a HashSet, and eliminate the Integer construction entirely? Second, an architectural comment. The user interaction function appears to be VisualizationViewer.GraphMouse, which can be replaced by overriding initMouseClicker() in a subclass. This isn't too onerous, but you might want to more explicitly expose how the MVC Controller component (GraphMouse) can be replaced. -dca |