Understanding and detecting real-world performance bugs

Guoliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, Shan Lu

Research output: Contribution to journalArticle

57 Scopus citations

Abstract

Developers frequently use inefficient code sequences that could be fixed by simple patches. These inefficient code sequences can cause significant performance degradation and resource waste, referred to as performance bugs. Meager increases in single threaded performance in the multi-core era and increasing emphasis on energy efficiency call for more effort in tackling performance bugs. This paper conducts a comprehensive study of 109 real-world performance bugs that are randomly sampled from five representative software suites (Apache, Chrome, GCC, Mozilla, and MySQL). The findings of this study provide guidance for future work to avoid, expose, detect, and fix performance bugs. Guided by our characteristics study, efficiency rules are extracted from 25 patches and are used to detect performance bugs. 332 previously unknown performance problems are found in the latest versions of MySQL, Apache, and Mozilla applications, including 219 performance problems found by applying rules across applications.

Original languageEnglish (US)
Pages (from-to)77-87
Number of pages11
JournalACM SIGPLAN Notices
Volume47
Issue number6
DOIs
StatePublished - Aug 1 2012

    Fingerprint

All Science Journal Classification (ASJC) codes

  • Computer Science(all)

Cite this