Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 529904

Summary: [perf] open a session 1 million causes performance issue due to rep split
Product: [Modeling] Sirius Reporter: Laurent Fasani <laurent.fasani>
Component: CoreAssignee: Project inbox <sirius.core-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: julien.dupont
Version: 5.1.0Keywords: triaged
Target Milestone: 6.0.0   
Hardware: PC   
OS: Windows 10   
Whiteboard:
Attachments:
Description Flags
session 1 Million project none

Description Laurent Fasani CLA 2018-01-16 12:19:21 EST
Created attachment 272288 [details]
session 1 Million project

Steps to reproduce:
* import the attached project
* measure the time to open it
-> KO. the time to open the session is about 300s whereas the expected time is about 67s

time is spent in DViewQuery.getLoadedRepresentations which calls org.eclipse.sirius.business.internal.representation.DRepresentationDescriptorToDRepresentationLinkManager.getRepresentationInternal(boolean)
The issue comes from the fact that
 * It iterates on the direct content of the aird resource and there are 10700 representations
 * It is called a huge number of times due to the participant to execute


Once loaded, and saved (do any little change), the loading time is the expected 67s.
Comment 1 Laurent Fasani CLA 2018-03-16 12:38:19 EDT
I am not convinced that fixing that bug has a great interest for the following reasons:
- it occurs during the migration and will not occur the following open if it has been saved
- we have rarely as many representations in the aird
- the fix would need some cache of loaded representation that would need to be updated. It does not in the direction of more robustness
Comment 2 Laurent Redor CLA 2018-06-27 11:54:51 EDT
Available in Sirius 6.0.0, see https://wiki.eclipse.org/Sirius/6.0.0 for details