EMFCompare filtering files out of model resolving phase [message #1802351] |
Thu, 07 February 2019 09:15 |
Luis Mata Messages: 4 Registered: October 2017 |
Junior Member |
|
|
Hello,
In our application, we are using EMFCompare with EGit to provide an environment with typical git collaboration with EMF models, allowing the users to commit, push, merge, etc..
Our issue is that some users have a relatively big model structure, and their merging process takes too much time (20min to 1h in some cases)
Just for the sake of clarity, we are talking about 200 model files with total ~50MB - I don't believe size is the main issue.
According to EMFCompare documentation, the largest chunk of time spent in the merging process is on the Model resolving phase.
Knowing this, I did some investigation and found out that the issue might be that, when resolving the model, the framework is looking into all the resources(files) present in the git repository to verify if they belong to the model structure.
The repository does not only contain the model files, but also other resources that don't belong to the model (to 2000+ files/ ~300MB total size).
When we make a call to build the logical models, I was able to supply a filtered version of the subscriber, with only the model files in it (they are all located in the same folder). But looking into the process it seems that the ResourceDependencyLocalResolver is going to get all the changes in the entire repository anyway, making the previous filtering useless.
I would like to ask some questions and maybe someone can give me suggestions on how I can improve the performance.
1- Am I correct in assuming that the heavy performance hit in the model resolution phase is due the fact the framework is looking into all the files present in the repository to validate if they are part of the model?
2- If so, is there any recommended way of constraining the resolver into only working in a folder (with all the model files in), instead of the full repository?
I am aware that my knowledge is still limited so I might have overlooked something.
Any help and suggestions in fixing this issue will be much appreciated.
Best regards,
Luis
|
|
|
Re: EMFCompare filtering files out of model resolving phase [message #1802856 is a reply to message #1802351] |
Mon, 18 February 2019 09:02 |
|
Hello Luis,
The way EMF Compare tries and locate the logical model of the compared files can be configurated through the preferences (Window > preferences > EMF Compare > resolution strategy). "Outgoing" can be selected so that we won't look into the container of your models, just through the outgoing references from the selected models. You have to be sure to select the "top-most" fragment for comparison in such cases. "Container" can be used to only look through the containing folder.
Explanations of what we call the "logical model" can be found in the documentation, and a small explanation of the model resolvers in the user guide.
Please let me know if this solves your issue, otherwise there might be a need to further profile what's hapenning as there might be a bottleneck due to the particular structure of your models.
Laurent Goubet
Obeo
|
|
|
Powered by
FUDForum. Page generated in 0.03744 seconds