Detecting performance issues due to suboptimal code during the development process can be a daunting task, especially when it comes to localizing them after noticing performance degradation after deployment. Static analysis has the potential to provide early feedback on performance problems to developers without having to run profilers with expensive (and often unavailable) performance tests. We develop a VSCode tool that integrates the static performance analysis results from Infer via code annotations and decorations (surfacing complexity analysis results in context) and side panel views showing details and overviews (enabling explainability of the results). Additionally, we design our system for interactivity to allow for more responsiveness to code changes as they happen. We evaluate the efficacy of our tool by measuring the overhead that the static performance analysis integration introduces in the development workflow. Further, we report on a case study that illustrates how our system can be used to reason about software performance in the context of a real performance bug in the ElasticSearch open-source project. Demo video: https://www.youtube.com/watch?v=-GqPb_YZMOs Repository: https://github.com/ipa-lab/vscode-infer-performance
翻译:在开发过程中,由于低于最佳代码而检测性能问题可能是一项艰巨的任务,特别是在发现部署后出现性能退化后,发现性能问题时,发现性能问题可能是一项艰巨的任务。静态分析有可能向开发者提供关于性能问题的早期反馈,而不必运行费用昂贵(而且往往无法进行)性能测试的剖面设计员。我们开发了一个VSCode工具,通过代码说明和装饰(在背景中显示复杂性分析结果)和侧面小组观点,将静态性能分析结果综合起来,显示细节和概览(结果的可解释性)。此外,我们设计了我们的交互性系统,以便随着代码变化的发生,更能反应。我们通过测量静态性性性能分析整合在开发工作流程中引入的间接费用来评估我们工具的功效。此外,我们报告一项案例研究,说明如何利用我们的系统在ElasticSearch开放源项目中真实性能缺陷的背景下解释软件的性能。Demo视频:https://www.youtube.com/watch=-GqP_YMOs-MOs-s-stopforatary/refistryatary:httptoryalary:http:http:http:http:https-s-s-pory-s-s-porty-porty-porty-porty-s-s-s-s-porty)。