Hello everybody, 
                Here, I tell you about the element creation performance, using the Papyrus API (element type) and outside of a graphical view.
 
I pushed yesterday changes concerning the naming strategies (Photon and Oxygen). Now, 3 behaviors are available:
                - quick index (no necessary unique)  -> the new default strategy used in Papyrus (constant time execution)
                - unique index (the previous behavior) (depends of the number of element in the owner)
                - no index
 
 
The associated bug is this one :
https://bugs.eclipse.org/bugs/show_bug.cgi?id=530155
The patch for Photon is here :
https://git.eclipse.org/r/#/c/115844/
                - it includes an update of the Junit tests when required
                - the updated documentation
                - a new preference page to configure the new behavior
                - the patch itself
 
 
A video illustrating the changes is available on youtube:
https://youtu.be/eeLGQPnMAyM.
 
Workbench : required time to create creating 5000 SysML Blocks using Element Types:
                - around 200 s. before patching Papyrus, UML2 and SysML 1.4
                - around 16s now.
 
An important information, when you create Profile, with subpackge/subprofile, lile SysML, registering them in the plugin.xml too, make increate the performance (it avoid to cross the model to find
 same).
 
JUnits Test:
This changes could break some Junit tests. It is easy to fix them with these lines before the tests (often in the #setUp method of the class):
                
// we set the default naming strategy, to preserve a previous test behavior
                org.eclipse.papyrus.uml.tools.utils.Activator.getDefault().getPreferenceStore().setValue(NameElementNamingStrategyPreferenceInitializer.NAMED_ELEMENT_INDEX_INITIALIZATION,
 NamedElementIndexNamingStrategyEnum.UNIQUE_INDEX_INITIALIZATION.getName());
 
And at the end of the test, with these line, to recover the new default behavior (often in the #tearDown method of the class:
                
// we reset the naming strategy to its initial value
                org.eclipse.papyrus.uml.tools.utils.Activator.getDefault().getPreferenceStore().setToDefault(NameElementNamingStrategyPreferenceInitializer.NAMED_ELEMENT_INDEX_INITIALIZATION);
 
Concerning the performance of Papyrus when the creation is done in Diagram, we did a first analysis of the problem and the result can be read in the bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=531145 .
 
Regards, 
-- 
Vincent Lorenzo
 
De : mdt-papyrus.dev-bounces@xxxxxxxxxxx [mailto:mdt-papyrus.dev-bounces@xxxxxxxxxxx]
De la part de LORENZO Vincent
Envoyé : mercredi 17 janvier 2018 17:44
À : Papyrus Project list <mdt-papyrus.dev@xxxxxxxxxxx>
Objet : [PROVENANCE INTERNET] [mdt-papyrus.dev] [Papyrus Oxygen.3] Papyrus element creationperformance
 
 
 
Hello everybody, 
                For Oxygen.3, we start to investigate the performance of the Papyrus edit service. The ticket to follow the investigation is this one :
https://bugs.eclipse.org/bugs/show_bug.cgi?id=529945
After a short study, it appears that :
                                - there is no real difference between papyrus Neon and Papyrus Photon
                               - the element’s creation depends on the number of elements in the model (for UML element with or without stereotype application)
                               - creating stereotyped elements is very slow in Papyrus, but in UML2 too. So we filled a ticket to UML2 :
https://bugs.eclipse.org/bugs/show_bug.cgi?id=528925
 
We continue to investigate about the Papyrus Edit Service which must be more efficient on element creation, at least, for non-stereotyped element.
 
                If you have remarks to do on the subject, please don’t hesitate.
 
Regards, 
--
Vincent LORENZO
01-69-08-17-24
CEA Saclay Nano-INNOV
Institut CARNOT CEA LIST
DILS/LISE
Point Courrier n° 174
91 191 Gif sur Yvette CEDEX