Tracking performance across software revisions

Tracking performance across software revisions
复制标题

跟踪软件修订版的性能

DOI:
--
复制
发表时间:
2009
期刊:
Principles and Practice of Programming in Java
影响因子:
--
通讯作者:
C. Krintz
C. Krintz
中科院分区:
--
文献类型:
--
作者:
Nagy Mostafa;C. Krintz

文献摘要

被引文献

相似文献

基于存储库的修订控制系统(如CVS、RCS、Subversion和GIT)是非常有用的工具,它们使软件开发人员能够并发地修改源代码、管理冲突的更改,并将更新作为新的修订提交。这样的系统促进了大型开发人员对共享源代码的协作和并发贡献。在这项工作中,我们研究了一个用于Java程序的“性能感知”存储库和修订控制的框架。我们的系统自动跟踪不同版本之间的行为差异,为开发人员提供关于他们的更改如何影响应用程序性能的反馈。它通过分析程序或组件的性能,并执行识别两个代码修订之间动态行为或性能差异的自动分析,作为存储库提交过程的一部分来完成这些工作。
Repository-based revision control systems such as CVS, RCS, Subversion, and GIT, are extremely useful tools that enable software developers to concurrently modify source code, manage conflicting changes, and commit updates as new revisions. Such systems facilitate collaboration with and concurrent contribution to shared source code by large developer bases. In this work, we investigate a framework for "performance-aware" repository and revision control for Java programs. Our system automatically tracks behavioral differences across revisions to provide developers with feedback as to how their change impacts performance of the application. It does so as part of the repository commit process by profiling the performance of the program or component, and performing automatic analyses that identify differences in the dynamic behavior or performance between two code revisions. In this paper, we present our system that is based upon and extends prior work on calling context tree (CCT) profiling and performance differencing. Our framework couples the use of precise CCT information annotated with performance metrics and call-site information, with a simple tree comparison technique and novel heuristics that together target the cause of performance differences between code revisions without knowledge of program semantics. We evaluate the efficacy of the framework using a number of open source Java applications and present a case study in which we use the framework to distinguish two revisions of the popular FindBugs application.