Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » GMF Diagram performance
GMF Diagram performance [message #1130117] Wed, 09 October 2013 08:37 Go to next message
Martin Jacob is currently offline Martin Jacob
Messages: 116
Registered: July 2009
Senior Member
Hi,

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.

any hint are highly appreciated, Martin
Re: GMF Diagram performance [message #1130145 is a reply to message #1130117] Wed, 09 October 2013 08:55 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 26150
Registered: July 2009
Senior Member
Martin,

Comments below.

On 09/10/2013 10:37 AM, Martin Jacob wrote:
> Hi,
>
> 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.
Do you know this to be a performance bottleneck based on measurements?
> 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.
Yes, and how significant is that?
>
> 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.
Have you done any measurements with a profiler? Often the killer for
performance nasty O(n^2) algorithms and perhaps you can specialize parts
of the framework to avoid that.
>
> 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.
Laying out 100,000 nodes with 200,000 connections might well just be an
inherently expensive operation...
>
> any hint are highly appreciated, Martin
Maybe someone else has some experience...
Re: GMF Diagram performance [message #1130158 is a reply to message #1130145] Wed, 09 October 2013 09:14 Go to previous messageGo to next message
Martin Jacob is currently offline Martin Jacob
Messages: 116
Registered: July 2009
Senior Member
Comments below

schrieb Ed Merks, Am 09.10.2013 10:55:
> Martin,
>
> Comments below.
>
> On 09/10/2013 10:37 AM, Martin Jacob wrote:
>> Hi,
>>
>> 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.
> Do you know this to be a performance bottleneck based on measurements?
The time saved is the generation of the XMI file itself. As this takes minutes.
>> 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.
> Yes, and how significant is that?
>>
>> 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.
> Have you done any measurements with a profiler? Often the killer for performance nasty O(n^2)
> algorithms and perhaps you can specialize parts of the framework to avoid that.
I am using Java Monitor but could not figure out how to get the most time consuming code sequence.
What profiler you recommend?
>>
>> 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.
> Laying out 100,000 nodes with 200,000 connections might well just be an inherently expensive
> operation...
The code to calculate the nodes coordinates is done within a second or two. So this is not the issue.
>>
>> any hint are highly appreciated, Martin
> Maybe someone else has some experience...
>
Re: GMF Diagram performance [message #1130177 is a reply to message #1130158] Wed, 09 October 2013 09:32 Go to previous message
Ed Merks is currently offline Ed Merks
Messages: 26150
Registered: July 2009
Senior Member
Martin,

Comments below.

On 09/10/2013 11:14 AM, Martin Jacob wrote:
> Comments below
>
> schrieb Ed Merks, Am 09.10.2013 10:55:
>> Martin,
>>
>> Comments below.
>>
>> On 09/10/2013 10:37 AM, Martin Jacob wrote:
>>> Hi,
>>>
>>> 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.
>> Do you know this to be a performance bottleneck based on measurements?
> The time saved is the generation of the XMI file itself. As this takes
> minutes.
That's very long! This is all in the C++ code I assume...
>>> 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.
>> Yes, and how significant is that?
>>>
>>> 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.
>> Have you done any measurements with a profiler? Often the killer for
>> performance nasty O(n^2)
>> algorithms and perhaps you can specialize parts of the framework to
>> avoid that.
> I am using Java Monitor but could not figure out how to get the most
> time consuming code sequence. What profiler you recommend?
I use YourKit, which is excellent, but not cheap, though they do provide
licenses for open source development if you publicly acknowledge using
their tool...
>>>
>>> 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.
>> Laying out 100,000 nodes with 200,000 connections might well just be
>> an inherently expensive
>> operation...
> The code to calculate the nodes coordinates is done within a second or
> two. So this is not the issue.
That's reassuring...
>>>
>>> any hint are highly appreciated, Martin
>> Maybe someone else has some experience...
>>
Previous Topic:Have @Ecore and @GenModel disappeared from Xcore?
Next Topic:error while deleting
Goto Forum:
  


Current Time: Thu Oct 30 15:29:17 GMT 2014

Powered by FUDForum. Page generated in 0.03398 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software