Software development teams establish elaborate continuous integration pipelines containing automated test cases to accelerate the development process of software. Automated tests help to verify the correctness of code modifications decreasing the response time to changing requirements. However, when the software teams do not track the performance impact of pending modifications, they may need to spend considerable time refactoring existing code. This paper presents PACE, a program analysis framework that provides continuous feedback on the performance impact of pending code updates. We design performance microbenchmarks by mapping the execution time of functional test cases given a code update. We map microbenchmarks to code stylometry features and feed them to predictors for performance predictions. Our experiments achieved significant performance in predicting code performance, outperforming current state-of-the-art by 75% on neural-represented code stylometry features.
翻译:软件开发团队通过建立包含自动化测试用例的精密持续集成流水线来加速软件研发进程。自动化测试有助于验证代码修改的正确性,降低对需求变更的响应时间。然而,当软件团队未能追踪待处理修改的性能影响时,可能需耗费大量时间重构现有代码。本文提出PACE这一程序分析框架,可为待处理代码更新的性能影响提供持续反馈。通过将功能测试用例的执行时间映射至代码更新场景,我们设计了性能微基准测试,并将微基准测试映射至代码风格特征,随后输入预测器进行性能预测。实验表明,该框架在预测代码性能方面取得显著成效,采用神经表征的代码风格特征时,性能较当前最先进方法提升75%。