Question

I am using JUNG for a project and when I am displaying relatively large graphs eg 1500 nodes, my pc would not be able to handle it (graphs are rendered but If I want to navigate the graph the system become very slow). Any Suggestions.

Was it helpful?

Solution

So, there are two things that JUNG visualization doesn't always scale very well right now:

  1. iterative force-directed layouts
  2. interaction: figuring out which node or edge (if any) is being referenced for hover and click events.

It sounds like it's the latter that you're running into right now.

Depending on your requirements, you have a couple of options:

  • (a) turn off mouse events, or at least hover events
  • (b) hack the visualization system so that lookups of event targets aren't O(m+n).

Simple solutions for (b) basically just partition the viewing area into smallish chunks and only sends events to elements that are in the same chunk as the pointer. (Obviously, the smaller you make the chunks, the more memory is required.)

We've had plans to do (b) (and a design sketched out) for some time but have been working on other things. Anyone that wants to help with a more permanent solution, please contact me.

OTHER TIPS

How much memory are you starting your VM with? Assuming your working on windows, looking at the Task Manager, does the VM hit the maximum amount of allocated memory and start using swap?

The problem probably lies with the calculation of your vertices' positions. The only layout that I've found fairly easy to calculate was the Tree Layout and obviously that's not suitable for all data sets.

The solution probably is to write your own custom layout with a lot less calculations than say an FRLayout.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top