More about HKUST
Automated Analysis of Energy Efficiency and Execution Performance for Mobile Applications
The Hong Kong University of Science and Technology Department of Computer Science and Engineering PhD Thesis 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 analysis of mobile applications' energy efficiency or execution performance. To bridge the gap, we conducted two large-scale empirical studies of real-world 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 device sensors and wake locks are properly deactivated after use. We evaluated GreenDroid using 14 popular open-source Android applications. GreenDroid successfully located 13 real energy bugs in these applications and additionally found two previously-unknown 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 evaluated PerfChecker with 39 popular and large-scale Android applications (29 open-source and 10 commercial) and a widely-used library. PerfChecker successfully detected 178 previously-unknown performance bugs, among which 88 were quickly confirmed by developers and 20 critical ones were fixed soon afterwards. We also confirmed via comparison experiments that fixing our detected performance bugs can significantly improve the performance of the corresponding applications. Date: Thursday, 18 June 2015 Time: 10:00am - 12:00noon Venue: Room 4483 Lifts 25/26 Chairman: Prof. Li Qiu (ECE) Committee Members: Prof. Shing-Chi Cheung (Supervisor) Prof. Raymond Wong Prof. Charles Zhang Prof. Chi-Ying Tsui (ECE) Prof. Mauro Pezze (Univ. of Lugano, Switzerland) **** ALL are Welcome ****