More about HKUST
Automated Analysis of Energy Efficiency and Execution Performance for Mobile Applications
PhD Thesis Proposal Defence Title: "Automated Analysis of Energy Efficiency and Execution Performance for Mobile Applications" by Mr. Yepang LIU Abstract: Mobile applications' energy efficiency and performance have a vital impact on user experience. However, many mobile applications on market suffer from bugs that can cause significant energy waste and performance degradation, thereby losing their competitive edge. Locating these bugs is labor-intensive and thus automated diagnosis is highly desirable. Unfortunately, people have limited understanding of these bugs and there are no clear criteria to facilitate automated energy efficiency or performance analysis. To bridge the gap, we conducted two large-scale empirical studies of real energy and performance bugs from popular Android applications. We studied the characteristics of these bugs and identified several common causes of energy waste and performance degradation. For energy bugs, we observed that (1) forgetting to deactivate device sensors or wake locks after use and (2) ineffectively utilizing sensory data can cause serious energy waste. To help developers detect such energy bugs, we proposed a dynamic analysis technique GreenDroid. GreenDroid automatically generates user interaction event sequences to systematically execute an Android application for state space exploration. During execution, it tracks the transformation, propagation and consumption of sensory data and analyzes whether the data are effectively utilized by the application to bring users perceptible benefits. It also closely monitors whether sensors and wake locks are properly deactivated after use. We evaluated GreenDroid using 13 popular open-source Android applications. GreenDroid successfully located 12 real energy bugs in these applications and additionally found two unreported bugs that were later confirmed by developers. For performance bugs, we observed that (1) conducting lengthy operations in an application's main thread and (2) frequently invoking heavy-weight program callbacks can seriously reduce the responsiveness of an application. To help developers detect such performance bugs, we designed a light-weight static analysis technique PerfChecker. PerfChecker automatically scans an Android application's bytecode and identifies a set of checkpoints whose efficiency is critical. It then analyzes whether the checkpoints' implementation satisfies the efficiency rules formulated from our empirical study. We conducted two case studies to evaluate PerfChecker. In the first study, we applied PerfChecker to analyze 29 popular open-source Android applications, which comprise 1.1 million lines of Java code. PerfChecker successfully detected 126 previously unknown performance bugs, among which 68 were quickly confirmed by developers and 20 critical ones were fixed soon afterwards. In the second study, we applied PerfChecker to analyze 10 popular commercial Android applications and one widely-used library. PerfChecker also successfully located 52 unreported performance bugs, of which 20 were confirmed by the corresponding developer teams. Date: Tuesday, 10 February 2015 Time: 10:30am - 12:30pm Venue: Room 3494 lifts 25/26 Committee Members: Prof. Shing-Chi Cheung (Supervisor) Dr. Charles Zhang (Chairperson) Dr. Sunghun Kim Dr. Jogesh Muppala **** ALL are Welcome ****