eclipse-sirius / sirius-web

Sirius Web: open-source low-code platform to define custom web applications supporting your specific visual languages
https://eclipse.dev/sirius/sirius-web.html
Eclipse Public License 2.0
79 stars 52 forks source link

Add optional support for loading/saving multiple EMF resources in parallel #3827

Open pcdavid opened 3 months ago

pcdavid commented 3 months ago

Currently org.eclipse.sirius.web.application.editingcontext.services.EditingContextSearchService.loadSemanticData(EditingContext, SemanticData) loads all the Documents inside a project sequentially inside the target EMF ResourceSet.

When a project's data is split across multiple documents, it is possible to load them in parallel, each in its own resource set, and only once they are all loaded to move them into the final, shared resource set.

Depending on how many documents there are and how many threads we assign to this, it can give a significant speedup (or not).

pcdavid commented 3 months ago

Locally, with 10 parallel threads I'm able to load a project with 1.2M elements (split across many resources) in about 2.5s, compared to about 15s when loading sequentially.

https://github.com/user-attachments/assets/814567a4-d2ef-4ba2-af27-ced65f968ecd

pcdavid commented 2 months ago