Bug 529904 - [perf] open a session 1 million causes performance issue due to rep split
Summary: [perf] open a session 1 million causes performance issue due to rep split
Status: CLOSED WONTFIX
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 5.1.0   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: 6.0.0   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2018-01-16 12:19 EST by Laurent Fasani CLA
Modified: 2018-06-27 11:54 EDT (History)
1 user (show)

See Also:


Attachments
session 1 Million project (4.91 MB, application/x-gzip)
2018-01-16 12:19 EST, Laurent Fasani CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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