当前位置: X-MOL 学术Egypt. Inform. J. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Detecting software performance problems using source code analysis techniques
Egyptian Informatics Journal ( IF 5.0 ) Pub Date : 2020-02-20 , DOI: 10.1016/j.eij.2020.02.002
Salma Eid , Soha Makady , Manal Ismail

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.



中文翻译:

使用源代码分析技术检测软件性能问题

软件发展迅速。许多软件系统会在短时间内发布新版本。此类版本中的代码更改可能是增强功能,错误修复或新功能。在保留其中一些更改的同时,与以前的版本相比,软件的功能可能会在新版本内意外降低其性能,从而导致性能下降。开发人员要寻找导致性能下降的代码更改,尤其是在进行大量代码更改时。随着性能变化的增加,检测性能下降的成本也大大增加。在本文中,我们提出了一种新颖的方法,该方法使用源代码分析技术自动识别潜在的代码更改,这些更改会导致性能从一个系统版本降级到下一个版本。这种方法是通过称为PerfDetect的原型工具实现的。PerfDetect检索特定应用程序源代码的新版本和旧版本中更改的源代码。PerfDetect自动:(a)为新版本中已更改的源代码标识相关的单元测试用例,(b)使用各种负载来比较新旧系统版本中这些相关测试用例的执行时间,并使用各种负载来检测性能下降情况;以及( c)在相应的源代码中分析导致这种性能下降的根本原因。如果根据步骤(a)未找到相关的单元测试,则将在步骤(a)中使用自动生成的针对更改代码的单元测试。在四个开源应用程序上对提出的方法进行了评估,以评估其检测性能下降并确定其根本原因的能力。评估结果表明,与替代性能检测方法相比,该方法可以在较短的时间内自动检测性能下降的根本原因。此外,由于PerfDetect依赖于源代码分析技术,因此它可以检测其他性能回归技术遗漏的性能退化。

更新日期:2020-02-20
down
wechat
bug