I’m currently dealing with tool performance (model opening, diagram modification…) due to the size of the model (it might be due to the network as well, it works quite better on smaller models).
The model, and particularly the *.aird file, contains a large amount of diagrams which explains its size.
A set of models is used by some users, another different set of models by other users, etc.
To deal with my performance issues, I’ve tried to duplicate *.aird file (and so *.afm file) for a same projet, each *.aird with their owns small set of diagrams. Each *.aird is linked to the unique *.melodymodeller file. In that way the consistency is ensured between all the *.aird files, and the size of *.aird is now smaller so I don’t have performance issue.
It’s working well (on a test case) but I wonder if it is the right method… Is it something to do ? Does Capella have a tool to do something like this ?
I think your method is good. Maybe ask on the Eclipse Sirius forum, so the Sirius developers might comment. But, afaiu it is not supported in capella. That doesn’t mean it doesn’t work, but for sure there is code in capella/kitalpha/afm that does assume that a project has only one .aird file. It now depends on whether you hit such code, or if you can ignore that limitation. And even if you hit one of these points, maybe there are workarounds.
The other way to split .aird files is to ‘fragment them’. When you right-click on certain elements ( i think most are supported ), and select “Fragment…” you can choose new files for your diagrams/elements underneath the selected element. But iirc, this won’t really improve performance, but is rather used to facilitate multiple users to work on different parts of the model simultaneously.
Many thanks for your answers! I’ll have a look on Eclipse Sirius forum.
First, it would be interesting to know precisely in why kind of scenario you have bad performance.
Splitting aird in two aird will effectively lower the time of the Capella project opening proportionally.
But once resources are loaded, from a sirius point of view, I don’t see why the performance of standard Sirius functionalities should be different between single versus splitted model, except if you have very big model (rough estimate of 150Mo or more) and not enough xmx memory to support it.
Now perhaps, it is possible that some Capella functionalities iterates on the whole aird model while applying on the scope of the single representation. That could explain the performance issue.