Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Sirius » SiriusTabDescriptorProvider performance
SiriusTabDescriptorProvider performance [message #1847885] Thu, 11 November 2021 08:23 Go to next message
Denis Nikiforov is currently offline Denis NikiforovFriend
Messages: 334
Registered: August 2013
Senior Member
Hi

We have a large enough odesign-file (5 Mb) defining ~200 ViewExtensionDescription.

The problem is that the larger the file is the slower Sirius works. For example I open a diagram and click on its nodes and I experience a significant UI delay.

It seems that the delay is caused by SiriusTabDescriptorProvider:

index.php/fa/41300/0/

computeEffectiveDescription() method scans all ViewExtensionDescription in all selected viewpoints, converts them. It takes ~200 ms on each selection change.

I replaced it by a custom TabDescriptorProvider. The only difference is that computeEffectiveDescription() method caches effectivePages:

index.php/fa/41301/0/

I guess that getTabDescriptors() is not show here because it works too fast and the sampler doesn't detect it.

The total time is decreased from 300 ms to 95 ms. It's a visible speed up.

For sure it's a bad solution because the cache should be invalidated. Some of the property forms are disappeared (they are defined in a separate odesign file loaded after cache is created). I think I can calculate the number of loaded viewExtensionDescriptions and update the cache if the number is changed.

Here is a bugzilla https://bugs.eclipse.org/bugs/show_bug.cgi?id=577206

Could you please improve it?
Re: SiriusTabDescriptorProvider performance [message #1847903 is a reply to message #1847885] Fri, 12 November 2021 05:39 Go to previous messageGo to next message
Denis Nikiforov is currently offline Denis NikiforovFriend
Messages: 334
Registered: August 2013
Senior Member
When I create/delete nodes/edges on a diagram the method is called 4 times. So it has a significant impact on performance.
Re: SiriusTabDescriptorProvider performance [message #1847908 is a reply to message #1847903] Fri, 12 November 2021 07:41 Go to previous messageGo to next message
Denis Nikiforov is currently offline Denis NikiforovFriend
Messages: 334
Registered: August 2013
Senior Member
It seems that org.eclipse.eef.properties.ui.eefTabDescriptorFilter only removes already generated property tabs.
Is it possible to let filter to disable some IEEFTabDescriptorProvider at all? For performance reasons.
I can define a custom IEEFTabDescriptorProvider with the same id, so the original one is replaced. But it's a hack, and also I get the error: "The extension org.eclipse.sirius.eefTabDescriptorProvider has already been contributed".
Re: SiriusTabDescriptorProvider performance [message #1847925 is a reply to message #1847908] Fri, 12 November 2021 17:52 Go to previous message
Steve Monnier is currently offline Steve MonnierFriend
Messages: 570
Registered: May 2011
Senior Member
Hi Denis,

Thank you (again :) ) for your analysis on a performance issue. I admit I am less knowledgeable on the EEF properties feature. I have relayed this post to the rest of the team so we can look into it next week. It was a bank holiday yesterday and I am the only one holding the fort today >:(. We will get back to you on this topic as soon as possible.

Best regards,
Steve


Steve Monnier - Obeo Canada
Need training or professional services for Sirius?
http://www.obeodesigner.com/sirius
Previous Topic:SelectDRepresentationElementsListener performace
Next Topic:Model changed during edition warning for numeric attributes
Goto Forum:
  


Current Time: Wed Sep 28 17:11:50 GMT 2022

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

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

Back to the top