Return
Detecting software performance problems using source code analysis techniques
DOI:10.1016/j.eij.2020.02.002.png)
Abstract
En 中文
Software is evolving rapidly. Many software systems release new versions in short iterations. Code changes within such versions may be enhancements, bug fixes, or new features. While preserving some of those changes, the functionality of software may accidentally degrade its performance within a new version when compared to a previous version thus introducing performance regressions. Developers suffer from finding code changes that cause performance regressions especially with a large number of code changes. The cost of detecting performance regressions increases massively as the size of the changes increases. In this paper, we propose a novel approach for automatically identifying potential code changes that cause performance regression from one system version to a subsequent one using source code analysis techniques. Such approach is realized through a prototype tool called PerfDetect. PerfDetect retrieves the changed source code across new and previous version of a specific application's source code. PerfDetect automatically: (a) identifies relevant unit test cases for the changed source code within the new version, (b) compares the execution time of these relevant test cases across the new and previous system versions using various loads to detect performance regressions, and (c) analyzes the root causes for such performance regression within the corresponding source code. In case no relevant unit tests are found as per step (a), automatically generated unit tests for the changed code are used instead within step (a). The proposed approach is evaluated on four open-source applications to assess its ability to detect performance regressions and identify their root causes. The evaluation results demonstrate that the proposed approach can automatically detect the root cause of performance regression in a shorter time as compared to alternative performance detection approaches. Furthermore, PerfDetect detects performance regressions, that were missed by other performance regression techniques, due to its reliance on source code analysis techniques. (C) 2020 Production and hosting by Elsevier B.V. on behalf of Faculty of Computers and Artificial Intelligence, Cairo University. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).
Keywords:
Performance regression
Performance aware unit test
Version control system
Source code analysis
AI Summary
Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.
Journal
IF:
4.3
Papers:
770
Citations:
1.4K

