I have a diagram generated from ecore model doing all the steps necessary as on the GMF Dashboard.
The model size is typical 3,000 nodes and 6,000 connections but larger models could include 100,000
nodes and 200,000 connections. The smaller model is displayed in a reasonable time. But the large
model takes ages.
The application setup is as follow. The model is build in C++ code and used for fast calculations.
From the C++ model the appropriate XMI file is generated. This XMI file is the input for the GMF
Diagram. Recently a JNI wrapper from the C++ model to Java exists.
To overcome the performance issues I looking for a way to skip the XMI file and use the JNI wrapper.
I know by using GEF its possible to use an own model. This is what we did but the performance for
the large model is not much better as loading the XMI file into the GMF diagram. The only time
saving is because the XMI file is not needed.
I tried already to reduce features in the GMF diagram as we only need to display the model and
modifications are reduced to move node and bend connections but not adding or deleting model
elements. Did not have luck with that one as well to get a satisfying performance.
Does any one have similar experience and found a solution to quickly display a diagram?
May be GEF is not the right framework to use? Zest seams to be not much faster as I tried this as well.
Jan Krakora Messages: 477 Registered: December 2009 Location: Prague
Both GEF and Zest use the draw2d as their underlying drawing framework. I think the amount of nodes and connections you mention is just too much.
I don't think it could be better. Try to debug the layout and painting to see what is the bottleneck.