Epsilon is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation, that work out of the box with EMF (including Xtext and Sirius), UML (including Cameo/MagicDraw), Simulink, XML and other types of models.
I'm working on an Epsilon solution for the TTC 2023 KMEHR to FHIR case, and I've noticed that our execution times increase very significantly from the second-to-last to the largest model:
A quick check with VisualVM shows we're spending 139s in the TransformationTrace.getTransformationTargets() method:
Looking at the method, it seems to have a similar issue to ECL's old MatchTrace, where it was using a simple loop over a list rather than a data structure which would scale better as models get larger.
I'm working on an Epsilon solution for the TTC 2023 KMEHR to FHIR case, and I've noticed that our execution times increase very significantly from the second-to-last to the largest model:
A quick check with VisualVM shows we're spending 139s in the TransformationTrace.getTransformationTargets() method:
Looking at the method, it seems to have a similar issue to ECL's old MatchTrace, where it was using a simple loop over a list rather than a data structure which would scale better as models get larger.