Whom to Blame? Automatic Diagnosis of Performance Bottlenecks on Smartphones

The past decade has witnessed a tremendous growth in the variety and complexity of mobile applications (apps). Although considerable amount of efforts have been spent to improve app performance, smartphones nowadays still face many performance challenges. We discover that the resource contention of multiple running apps, caused by resource bottleneck(s), is a key factor that affects the smartphone performance. In this paper, we present APB, an A utomatic tool that detects Performance issues caused by resource B ottleneck(s) on commodity Android smartphones. APB employs an innovative bottleneck-hypersurface model to quantify performance issues given a specific system state. Then, based on the model, APB identifies a list of apps that contribute most to the resource contention, which can well inform the end user to take action such as killing background apps to resolve the performance issue. We implement APB on commodity Android platforms and widely evaluate its effectiveness with real user studies. Results show that APB outperforms three baseline approaches and helps users to improve smartphone performance by 10 to 67 percent, with less than 1 percent runtime overhead.

[1]  Lei Yang,et al.  Accurate online power estimation and automatic battery behavior based power model generation for smartphones , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[2]  Peter A. Dinda,et al.  Panappticon: Event-based tracing to measure mobile application and platform performance , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[3]  Xue Liu,et al.  Why application errors drain battery easily?: a study of memory leaks in smartphone apps , 2013, HotPower '13.

[4]  Edith Schonberg,et al.  Finding low-utility data structures , 2010, PLDI '10.

[5]  Tian Jiang,et al.  Discovering, reporting, and fixing performance bugs , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[6]  Seokjun Lee,et al.  EnTrack: a system facility for analyzing energy consumption of Android system services , 2015, UbiComp.

[7]  Shan Lu,et al.  Statistical debugging for real-world performance problems , 2014, OOPSLA.

[8]  Ratul Mahajan,et al.  AppInsight: Mobile App Performance Monitoring in the Wild , 2022 .

[9]  Ming Zhong,et al.  I/O system performance debugging using model-driven anomaly characterization , 2005, FAST'05.

[10]  Ahmed E. Hassan,et al.  A qualitative study on performance bugs , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[11]  Yepang Liu,et al.  Diagnosing Energy Efficiency and Performance for Mobile Internetware Applications , 2015, IEEE Software.

[12]  Yepang Liu,et al.  Characterizing and detecting performance bugs for smartphone applications , 2014, ICSE.

[13]  Seokjun Lee,et al.  User interaction-based profiling system for Android application tuning , 2014, UbiComp.

[14]  Matthias Hauswirth,et al.  Catch me if you can: performance bug detection in the wild , 2011, OOPSLA '11.

[15]  Zhuoqing Morley Mao,et al.  QoE Doctor: Diagnosing Mobile App QoE with Automated UI Control and Cross-layer Analysis , 2014, Internet Measurement Conference.

[16]  Yunheung Paek,et al.  Mantis: Automatic Performance Prediction for Smartphone Applications , 2013, USENIX Annual Technical Conference.

[17]  Minglu Li,et al.  E3: energy-efficient engine for frame rate adaptation on smartphones , 2013, SenSys '13.

[18]  Shan Lu,et al.  Understanding and detecting real-world performance bugs , 2012, PLDI.

[19]  Dongmei Zhang,et al.  Context-sensitive delta inference for identifying workload-dependent performance bottlenecks , 2013, ISSTA.

[20]  Christopher Vendome,et al.  How developers detect and fix performance bottlenecks in Android apps , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[21]  Xiao Ma,et al.  eDoctor : Automatically Diagnosing Abnormal Battery Drain Issues on Smartphones , 2013 .

[22]  Feng Qian,et al.  Profiling resource usage for mobile applications: a cross-layer approach , 2011, MobiSys '11.

[23]  Srinivasan Seshan,et al.  Modeling web quality-of-experience on cellular networks , 2014, MobiCom.

[24]  Qiang Fu,et al.  Log2: A Cost-Aware Logging Mechanism for Performance Diagnosis , 2015, USENIX Annual Technical Conference.