Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There are several points to think about:</p> <ol> <li><p>How complex are your nodes? If they are just dots you may consider drawing them on an <a href="http://docs.oracle.com/javafx/2/api/javafx/scene/image/WritableImage.html" rel="nofollow">WritableImage</a> and save a lot of memory. For more complex cases you may want to use <a href="http://docs.oracle.com/javafx/2/api/javafx/scene/canvas/Canvas.html" rel="nofollow">Canvas</a>. Either way you will save on event handlers, properties and other small things which counts in larger amounts.</p></li> <li><p>Another important matter is relevance of the data view. If you presents a map or something similar then user only care about visible part. The rest can be stored in disk cache and by <a href="http://en.wikipedia.org/wiki/Pareto_principle" rel="nofollow">Pareto principle</a> only 20% of that data will be of much use. So you can plan accordingly and have real graphical nodes only for visible part (and maybe preload some adjusted parts for user experience sake).</p></li> <li><p>"Divide and conquer" conception. Even if you don't want to restrict user view according to plan (2) you can't be in constant need of 15 millions nodes. Not in UI library, there is no big enough monitors I'm afraid. So, split your data into segments and load one segment in a time. If you need to perform any kind of calculations on the whole set -- do not work with nodes, use simplest implementation and perform calculations in some background process.</p></li> <li><p>Existing solutions are always a matter of investigations before doing big stuff. For example, there are a lot of caching libraries like <a href="http://www.samaxes.com/2009/03/jboss-pojocache-configuration/" rel="nofollow">PojoCache</a> which seamlessly allow you to work with relevant data only once you splitted your billions of nodes into groups.</p></li> </ol>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload