Characterizing and detecting performance bugs for smartphone applications
Top Cited Papers
- 31 May 2014
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 1013-1024
- https://doi.org/10.1145/2568225.2568229
Abstract
Smartphone applications’ performance has a vital impact on user experience. However, many smartphone applications suffer from bugs that cause significant performance degradation, thereby losing their competitive edge. Unfortunately, people have little understanding of these performance bugs. They also lack effective techniques to fight with such bugs. To bridge this gap, we conducted a study of 70 real-world performance bugs collected from eight large-scale and popular Android applications. We studied the characteristics (e.g., bug types and how they manifested) of these bugs and identified their common patterns. These findings can support follow-up research on performance bug avoidance, testing, debugging and analysis for smartphone applications. To demonstrate the usefulness of our findings, we implemented a static code analyzer, PerfChecker, to detect our identified performance bug patterns. We experimentally evaluated PerfChecker by applying it to 29 popular Android applications, which comprise 1.1 million lines of Java code. PerfChecker successfully detected 126 matching instances of our performance bug patterns. Among them, 68 were quickly confirmed by developers as previously-unknown issues that affect application performance, and 20 were fixed soon afterwards by following our optimization suggestionsKeywords
This publication has 12 references indexed in Scilit:
- Automated testing with targeted event sequence generationPublished by Association for Computing Machinery (ACM) ,2013
- Context-sensitive delta inference for identifying workload-dependent performance bottlenecksPublished by Association for Computing Machinery (ACM) ,2013
- ADELPublished by Association for Computing Machinery (ACM) ,2012
- What is keeping my phone awake?Published by Association for Computing Machinery (ACM) ,2012
- Understanding and detecting real-world performance bugsPublished by Association for Computing Machinery (ACM) ,2012
- Where is the energy spent inside my app?Published by Association for Computing Machinery (ACM) ,2012
- Catch me if you canPublished by Association for Computing Machinery (ACM) ,2011
- Profiling resource usage for mobile applicationsPublished by Association for Computing Machinery (ACM) ,2011
- Finding low-utility data structuresPublished by Association for Computing Machinery (ACM) ,2010
- On a Test of Whether one of Two Random Variables is Stochastically Larger than the OtherThe Annals of Mathematical Statistics, 1947