Performance in Model Transformations: Experiments with ATL and QVT

Model transformations are increasingly being incorporated in software development processes. However, as systems being developed with transformations grow in size and complexity, the performance of the transformations tends to degrade. In this paper we investigate the factors that have an impact on the execution performance of model transformations. We analyze the performance of three model transformation language engines, namely ATL, QVT Operational Mappings and QVT Relations. We implemented solutions to two transformation problems in these languages and compared the performance of these transformations. We extracted metric values from the transformations to systematically analyze how their characteristics influence transformation execution performance. We also implemented a solution to a transformation problem in ATL in three functionally equivalent ways, but with different language constructs to evaluate the effect of language constructs on transformation performance. The results of this paper enable a transformation designer to estimate beforehand the performance of a transformation, and to choose among implementation alternatives to achieve the best performance. In addition, transformation engine developers may find some of our results useful in order to tune their tools for better performance.