Computer Science > Software Engineering
[Submitted on 21 Sep 2017 (v1), last revised 1 Jan 2020 (this version, v6)]
Title:A Zero-Positive Learning Approach for Diagnosing Software Performance Regressions
View PDFAbstract:The field of machine programming (MP), the automation of the development of software, is making notable research advances. This is, in part, due to the emergence of a wide range of novel techniques in machine learning. In this paper, we apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches. Thus far, AutoPerf has produced no false negatives.
Submission history
From: Mejbah Alam [view email][v1] Thu, 21 Sep 2017 22:39:39 UTC (4,513 KB)
[v2] Sun, 19 Nov 2017 18:53:21 UTC (4,514 KB)
[v3] Thu, 29 Nov 2018 21:07:46 UTC (4,291 KB)
[v4] Fri, 31 May 2019 23:38:38 UTC (3,476 KB)
[v5] Fri, 1 Nov 2019 06:17:41 UTC (5,099 KB)
[v6] Wed, 1 Jan 2020 19:10:01 UTC (5,422 KB)
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.