Java Composition Model, weaving KDM Model Source and Java Model, can easily become a big model, in terms of XMI size as well as number of model elements.
First implementation resulted in a single XMI file containing all the weaving elements between both models.
Second implementation results in a root XMI file, referencing other xmi fragment
Splitting was done following this repartition:
This splitting enable the browser to perform lazy loading when browsing a composite model in the MoDisco Model Browser It has been decided to split after realizing a benchmark on the memory consumption of the MoDisco model browser.
This figure shows the memory used by the MoDisco Model Browser on several xmi resources obtained with the Java Composition Discoverer. The gain of memory thanks to the lazy loading is significant.
To decide which spliting solution to choose, we made another benchmark on the time spent on serializing the resource on the hard drive. Moreover, serializing plenty of files (one xmi for each java classes) creates a lot of hard drive access resulting in some delay while browsing
Measures in Browser opening figure have been done with -1 as "Resource Loading Depth" setting, for initial complete xmi resources loading in MoDisco Browser.