PerfChecker Research Project
Contact: andrewust@cse.ust.hk

   Researchers 

   News update

  • [March 12, 2014] We talked to Android tool developers and they have agreed to include view holder violation checker into Lint. The checker is going to appear in Android Studio 0.5.3.

PerfChecker project 

PerfChecker project aims to help Android developers find performance problems in their applications. We start this project with an empirical study to understand the characteristics of real-world performance bugs in Android applications and identify common performance bug patterns. From this study, we identified three common patterns of performance bugs [1]:
  1. Lengthy operations in main threads
  2. Wasted computation for invisible GUI
  3. Frequently invoked heavy-weight callbacks
We then desinged algorithms to automatically detect these problems by analyzing application code. We implemented a prototype tool "PerfChecker" on top of Soot, a widely-used static program analysis framework for Java programs. PerfChecker supports the detection of the first and second patterns of performance bugs. For the second pattern, we proposed an effective detection algorithm in our ealier work [2]. To validate the usefulness of PerfChecker, we applied it to analyze 29 large-scale and popular-downloaded Android applications on market. Encouragingly, PerfChecker helped find 126 previously-unknown performance threats, of which 68 have been confirmed by developers as real bugs that affect application perfomrance so far. Developers also have fixed 20 critical ones out of these 68 bugs.

In this website, you will have access to the following information:
  1. Our empirical study data
  2. PerfChecker tool and source code
  3. Detailed information about our experimental subjects and detected problems
There are chances that the data in this website are not up to date or contain errors. You can always refer to our research work or contact us if you have any questions.

Related project: GreenDroid: Automated Energy Inefficiency Diagnosis for Smartphone Applications

News Update

  1. [March 12, 2014] We talked to Android tool developers and they have agreed to include view holder violation checker into Lint, a static tool in Android Studio. The checker is going to appear in Android Studio 0.5.3.

References

  1. Yepang Liu, "Automated Analysis of Energy Efficiency and Execution Performance for Mobile Applications", Doctoral thesis, HKUST, June 2015. [pdf]
  2. Yepang Liu, Chang Xu, and S.C. Cheung, "Characterizing and Detecting Performance Bugs for Smartphone Applications," in Proceedings of the 36th International Conference on Software Engineering (ICSE 2014), Hyderabad, India, June 2014. [pdf]
  3. Yepang Liu, Chang Xu, and S.C. Cheung, "Where Has My Battery Gone? Finding Sensor Related  Energy Black Holes in Smartphone Applications," in Proceedings of the 11th IEEE International Conference on Pervasive Computing and Communications (PERCOM 2013), San Diego, California, USA, Mar 2013, pp. 2-10. [pdf][talk slides]