Understanding and Detecting Real-World Performance Bugs

被引:225
作者
Jin, Guoliang [1 ]
Song, Linhai [1 ]
Shi, Xiaoming [1 ]
Scherpelz, Joel [1 ,2 ]
Lu, Shan [1 ]
机构
[1] Univ Wisconsin Madison, Madison, WI 53706 USA
[2] Univ Wisconsin, Madison, WI 53706 USA
基金
美国国家科学基金会;
关键词
Languages; Measurement; Performance; Reliability; performance bugs; characteristics study; rule-based bug detection;
D O I
10.1145/2345156.2254075
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:77 / 87
页数:11
相关论文
共 60 条
[1]  
Aguilera M.K., 2003, SOSP
[2]  
[Anonymous], ASPLOS
[3]  
[Anonymous], OSDI
[4]  
[Anonymous], 2011, ASPLOS
[5]  
[Anonymous], 2004, CGO
[6]  
[Anonymous], 2009, SOSP
[7]  
Baek W., 2010, PLDI
[8]  
Bodewig Stefan., BUG 45396 THERE IS N
[9]  
Cadar Cristian, 2008, P OP SYST DES IMPL O, P209
[10]  
Chipounov Vitaly., 2011, ASPLOS