Community
Participate
Working Groups
In my application I merge big models (files of about 3MB size). I have encountered poor performance during difference calculation. Using JProfiler, have I discovered that a lot of time is spent inside the getInverseReferences(...) method of ComparisonSpec class. The result object inside is EList<Diff>, which takes a lot of time when adding a new element to the list (with a lot of elements already in it). I created my custom implementation, which uses HashSet instead of EList, and on the return I create EList based on this HashSet. In this case it is much faster.
For the record, this bug was created as a follow up on discussion on https://www.eclipse.org/forums/index.php?t=msg&th=1086483&goto=1767589& . There are a few ways things could be improved here: * multi-threading the LCS computation * Check why the ProximityEObjectMatcher "looks like" it's doing way more work than necessary. for example when comparing a huge model with an empty one, there shouldn't be that many look-ups when basically nothing can be matched (matchAheadOfTime seemed to be the culprit) * Determine per-use-case customization that need to be done for client models This is overall something that we do not plan on looking after for now.