Before revision: We present AutoPerf, a generalized software performance regression diagnosis system. AutoPerf uses autoencoders, an unsupervised learning technique, and hardware performance counters to learn the performance signatures of a program. It then uses this knowledge to identify when newer versions of the program suffer from performance regressions, while simultaneously providing root cause analysis to help programmers debug the program's performance. AutoPerf is the first zero-positive learning performance regression diagnosis system.
After revision: A performance regression is a degradation of software performance due to a change in code. A common way to identify such regressions is to manually create tests for them. This is known as regression testing. Although widely used, regression testing can be slow and error-prone due to its historically manual nature. Moreover, such tests' utility is usually constrained by the expertise of the developer creating them. Due to these limitations, researchers have turned their attention to the automatic generation of regression tests. In this paper, we present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning performance regression diagnosis system.