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