Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Sirius » Optimize performances on big models
Optimize performances on big models [message #1426802] Fri, 19 September 2014 08:28 Go to next message
Julien Siega is currently offline Julien SiegaFriend
Messages: 8
Registered: September 2014
Junior Member
Hi,

I have some issues using sirius with big model.

i try to use models with 100Mo of data. In my tool i'm using my own editors and all my models are loaded in 1ms. But when i open my session with sirius it's took something like 3 minutes.

To open the session i used a transactionnalEditingDomain and i'm loosing time when the transaction add the changeRecorder on Resource Content and beginRecording.

There is any way to prevent this ? Is it necessary in Sirius to use an TransactionnalEditingDomain (i'm not good in GMF), maybe i should split my resource and to add cross-document proxy to prevent the loading of the tree.

Thanks

[Updated on: Tue, 23 September 2014 09:34]

Report message to a moderator

Re: Optimize performances on big models [message #1428755 is a reply to message #1426802] Mon, 22 September 2014 09:35 Go to previous messageGo to next message
Julien Siega is currently offline Julien SiegaFriend
Messages: 8
Registered: September 2014
Junior Member
Finally i defined my own TransactionnalEditingDomain with my own ChangeRecorder and it's better.

But i have a new problem, When i open my session with

Quote:
public void open(IProgressMonitor monitor) {


Defined in DAnalysesSessionImpl, i'm losing time during

Quote:
// Then resolve all resources (to automatically add new semantic
// resources)
List<Resource> resourcesBeforeLoadOfSession = Lists.newArrayList(getTransactionalEditingDomain().getResourceSet().getResources());
dAnalysisRefresher.forceLoadingOfEveryLinkedResource();


This method load all my resourceContent and resolve proxies. It's something that i don't want, why we need to do this at the opening of the session and don't let EMF resolve proxy when eGet methods are called ? Maybe i'm missing something, there is an other why to improve this ?

Is it better to split resource with Sirius ?, like add all my content in Cross-Document containment and the predicate defined will not load all objects :


Quote:
public void forceLoadingOfEveryLinkedResource() {ModelUtils.resolveAll(session.getTransactionalEditingDomain().getResourceSet(), new Predicate<EReference>() {
public boolean apply(EReference input) {
// Do not resolve derived features.
// Do not resolve containment/container references : they are
// already resolved by the model structural analysis course.
return !input.isDerived() && !input.isContainer() && !input.isContainment();
}
});
}


I'm using Sirius 0.9.0 maybe it's better with the 1.0.0 ?

[Updated on: Mon, 22 September 2014 11:48]

Report message to a moderator

Re: Optimize performances on big models [message #1429499 is a reply to message #1426802] Tue, 23 September 2014 10:02 Go to previous messageGo to next message
Pierre-Charles David is currently offline Pierre-Charles DavidFriend
Messages: 522
Registered: July 2009
Senior Member
Le 19/09/2014 13:18, Julien Siega a écrit :
> Hi,

Hi.

> I have some issues using sirius with big model. All my models are stored
> In CDO and i have connecte Sirius with CDO everything works fine with
> something like 20 models with cross-reference.

Compatibility with CDO is not supported out-of-the-box by Sirius itself.

The integration between Sirius and CDO comes with Obeo Designer, a
commercial offer provided by Obeo. Based on an annual subscription, it
includes real-time collaborative edition on all types of Sirius
representations.

The current version of Obeo Designer (6.2) is based on a version of
Sirius before it was an Open Source project at Eclipse. But the next
major version of Obeo Designer (7.0) will be based on Sirius. You can
get more information, including an evaluation version (with no feature
restrictions) at http://www.obeodesigner.com/.

Disclaimer: I am an Obeo employee and part of the Obeo Designer team.

Regards.

--
Pierre-Charles David - Obeo

Need professional services for Sirius?
http://www.obeodesigner.com/sirius


Pierre-Charles David - Obeo

Need training or professional services for Sirius?
http://www.obeodesigner.com/sirius
Re: Optimize performances on big models [message #1429536 is a reply to message #1429499] Tue, 23 September 2014 11:15 Go to previous message
Julien Siega is currently offline Julien SiegaFriend
Messages: 8
Registered: September 2014
Junior Member
Thanks for your answer and help

> Compatibility with CDO is not supported out-of-the-box by Sirius itself.

> The integration between Sirius and CDO comes with Obeo Designer, a
> commercial offer provided by Obeo. Based on an annual subscription, it
> includes real-time collaborative edition on all types of Sirius
> representations.

> The current version of Obeo Designer (6.2) is based on a version of
> Sirius before it was an Open Source project at Eclipse. But the next
> major version of Obeo Designer (7.0) will be based on Sirius. You can
> get more information, including an evaluation version (with no feature
> restrictions) at ."

Ok. i understand.

In fact i have the same issues without CDO. I have a XMI which reference and an other XMI. This other XMI contains a hudge amount of Eobject but my sirius diagram dont need them. The reference between the two models aren't containment/container references.

I don't add this second model in semantic ressources, (but the resource is in the resourceSet, maybe i should not do this) and it's seems thats sirius try to load it during the "open session". if sirius find a proxy, this one will be resolved ? .I'm a little confused about how the open works, and i hope that i don't miss something. Maybe i have done something wrong in my Sirius Session and my resourceSet :S. There are some benchmark on Sirius, showing the relation between number of EObject and loading time ?

Thanks again for your help

[Updated on: Tue, 23 September 2014 12:50]

Report message to a moderator

Previous Topic:RepresentationTemplate Use Case
Next Topic:Creation of element based edge
Goto Forum:
  


Current Time: Tue Apr 07 05:10:46 GMT 2020

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

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

Back to the top