Automated Selection of Software Refactorings that Improve Performance

Nikolai Moesus, Matthias Scholze, Sebastian Schlesinger, Paula Herber
2018 Proceedings of the 13th International Conference on Software Technologies  
Performance is a critical property of a program. While there exist refactorings that have the potential to significantly increase the performance of a program, it is hard to decide which refactorings effectively yield improvements. In this paper, we present a novel approach for the automated detection and selection of refactorings that are promising candidates to improve performance. Our key idea is to provide a heuristics that utilizes software properties determined by both static code
more » ... and dynamic software analyses to compile a list of concrete refactorings sorted by their assessed potential to improve performance. The expected performance improvement of a concrete refactoring depends on two factors: the execution frequency of the respective piece of code, and the effectiveness of the refactoring itself. To assess the latter, namely the general effectiveness of a given set of refactorings, we have implemented a set of micro benchmarks and measured the effect of each refactoring on computation time and memory consumption. We demonstrate the practical applicability of our overall approach with experimental results.
doi:10.5220/0006837900670078 dblp:conf/icsoft/MoesusSSH18 fatcat:s3ibp4mhefbh7ibmj4eqxk2w6q