Bug 567517 - [Sequence Diagram] Improve layout performances
Summary: [Sequence Diagram] Improve layout performances
Status: CLOSED FIXED
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 6.3.4   Edit
Hardware: PC Windows 10
: P3 enhancement (vote)
Target Milestone: 6.4.0   Edit
Assignee: Nathalie Lepine CLA
QA Contact: Maxime Porhel CLA
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks: 571400 563193
  Show dependency tree
 
Reported: 2020-10-01 10:29 EDT by Nathalie Lepine CLA
Modified: 2021-02-22 05:06 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nathalie Lepine CLA 2020-10-01 10:29:26 EDT
Optimize layout:
- org.eclipse.sirius.diagram.sequence.business.internal.layout.AbstractSequenceOrderingLayout: replace retainAll
Comment 1 Eclipse Genie CLA 2020-10-01 10:39:12 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170167
Comment 2 Maxime Porhel CLA 2020-10-02 11:38:03 EDT
Hi, 

Gerrit tests were ok with last patch from Nathalie. 

I have run additonal tests on our internal CI server in order to launch every full Sirius tests suites on the last patch set: 
 - Sequence standalone tests : 70/70
 - Sequence Junit tests:       68/68
 - Sequence SWTBot tests:     482/482

I have also run a few tests with Nathalie's patch and an equivalent which keeps the lists results after the intersection (it keeps the Iterables.elementEquals and the for loops but there are a few additional  List > LinkedHashSetSet > List transformations), tests results are on the gerrit review in favor of Nathalie's patch : 

Time in ms,  provided patch set vs original time:

Sequence Vertical Layout
 - Big model :                   2420 vs 66500
 - Internal Reproduction model :  145 vs  1030           
 - Simple model :                   2 vs     2

Note that SequenceHorizontalLayout and SequenceObservationLayout are not impacted by the patch.

Number of Sequence specific DDiagramElement
 - Big model: 1178
 - Internal reproduction mode: 303
 - Simple model: 31
Comment 3 Maxime Porhel CLA 2020-10-02 13:11:16 EDT
The model used to test the optimization is a Capella model (1.4.0) which comes from a user and cannot be shared. 
It has been used as seed to construct the big and the simple Sequence diagrams and migrated to Capella 5.0.0 (dev version).

The tests have been done on master branches of Capella and Sirius (Capella 5.0.0 dev preview [1] based on Sirius 6.4.0 dev preview [2])


[1] https://download.eclipse.org/capella/core/products/stable/5.0.0-S20200929-101654
[2] https://download.eclipse.org/sirius/updates/stable/6.4.0-S20200921-043506
Comment 4 Maxime Porhel CLA 2020-10-02 13:13:28 EDT
Validation steps: 

- check the status of the Sequence tests (standalone, junit, swtbot)
- main validation will be done on 563193.
Comment 6 Eclipse Genie CLA 2020-10-09 03:35:26 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170529
Comment 7 Eclipse Genie CLA 2020-10-09 09:00:21 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170546
Comment 8 Eclipse Genie CLA 2020-10-13 11:11:08 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170720
Comment 9 Eclipse Genie CLA 2020-10-14 04:36:18 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170757
Comment 10 Eclipse Genie CLA 2020-10-14 16:05:24 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170790
Comment 11 Eclipse Genie CLA 2020-10-15 07:27:52 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170819
Comment 12 Eclipse Genie CLA 2020-10-15 10:17:26 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170830
Comment 13 Eclipse Genie CLA 2020-10-15 10:19:37 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170831
Comment 14 Eclipse Genie CLA 2020-10-15 10:21:49 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170832
Comment 15 Eclipse Genie CLA 2020-10-15 10:30:01 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170833
Comment 16 Eclipse Genie CLA 2020-10-15 10:31:13 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170834
Comment 17 Eclipse Genie CLA 2020-10-15 10:39:25 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170836
Comment 18 Eclipse Genie CLA 2020-10-15 10:47:52 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170838
Comment 19 Eclipse Genie CLA 2020-10-15 10:52:17 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170839
Comment 20 Eclipse Genie CLA 2020-10-16 03:45:07 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170868
Comment 21 Eclipse Genie CLA 2020-10-16 03:45:09 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170869
Comment 22 Eclipse Genie CLA 2020-10-16 04:01:25 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170872
Comment 23 Eclipse Genie CLA 2020-10-16 05:29:56 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170875
Comment 24 Eclipse Genie CLA 2020-10-16 10:54:54 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170884
Comment 25 Eclipse Genie CLA 2020-10-19 04:44:12 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170924
Comment 26 Eclipse Genie CLA 2020-10-19 05:07:18 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170926
Comment 27 Eclipse Genie CLA 2020-10-19 09:38:42 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170936
Comment 28 Eclipse Genie CLA 2020-10-19 09:38:43 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170937
Comment 29 Eclipse Genie CLA 2020-10-19 10:09:08 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/170941
Comment 30 Eclipse Genie CLA 2020-10-21 18:18:06 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171087
Comment 31 Eclipse Genie CLA 2020-10-21 18:18:07 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171088
Comment 32 Eclipse Genie CLA 2020-10-21 18:18:09 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171089
Comment 33 Eclipse Genie CLA 2020-10-21 18:18:10 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171090
Comment 34 Eclipse Genie CLA 2020-10-21 18:18:11 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171091
Comment 35 Eclipse Genie CLA 2020-10-21 18:18:12 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171092
Comment 36 Eclipse Genie CLA 2020-10-22 17:09:29 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171148
Comment 37 Eclipse Genie CLA 2020-10-22 17:09:30 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171149
Comment 38 Eclipse Genie CLA 2020-10-22 17:09:32 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171150
Comment 39 Eclipse Genie CLA 2020-10-22 17:09:33 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171151
Comment 40 Eclipse Genie CLA 2020-10-22 17:09:34 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171152
Comment 41 Eclipse Genie CLA 2020-10-22 17:36:48 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/171153
Comment 79 Maxime Porhel CLA 2020-11-24 08:42:04 EST
- 36 optimization commits have been provided on Sequence (refresh, layout, arrange, move/resize command/validation/feedback
- 2 optimizations commits have been provided to Diagram (decorator computation)

Junit/SWTBot from Sirius, tests from Capella has shown no regression when we applied the patches neither did the manual tests done with sample sequence diagrams made with Sirius or with the Interaction diagrams from Capella.
Comment 80 Maxime Porhel CLA 2020-11-24 08:43:57 EST
Validated on Sirius 6.4.0-S20201110-075607



Refresh, Sequence Layout, Move/Resize feedback, ArrangeAll have been optimized.
Comment 81 Pierre-Charles David CLA 2020-12-04 04:23:31 EST
Available in Sirius 6.4.0, see https://download.eclipse.org/sirius/updates/releases/6.4.0/ for details.