||Often during the development phase of a software, engineers are facing different implementation alternatives. In order to test several options without investing the resources in implementing each one of them, a so-called performance model comes in practice. By using a performance models the developers can simulate the system in diverse scenarios and conditions. To minimize the differences between the real system and its model, i.e. to improve the accuracy of the model, parametric dependencies are introduced. They express a relation between the input arguments and the performance model parameters of the system. The latter could be loop iteration count, branch transition probabilities, resource demands or external service call arguments.
Existing works in this field have two major shortcomings - they either do not perform incremental calibration of the performance model (updating only changed parts of the source code since the last commit), or do not consider more complex dependencies than linear.
This work is part of the approach for the continuous integration of performance models. Our aim is to identify parametric dependencies for external service calls, as well as, to optimize the existing dependencies for the other types of performance model parameters. We propose using two machine learning algorithms for detecting initial dependencies and then refining the mathematical expressions with a genetic programming algorithm. Our contribution also includes feature selection of the candidates for a dependency and consideration not only of input service arguments but also the data flow i.e., the return values of previous external calls.