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

Problems detected by PerfChecker

We designed algorithms to automatically detect our identified bug patterns. We implemented our algorithms as a prototype tool named "PerfChecker". To validate the usefulness of PerfChecker, we applied it to analyze 29 popular real-world Android applicaitons. These applications comprises more than 1.1 million lines of code. PerfChecker detected 126 previously unknown performance issues in them. We submitted bug reports to developers and so far 68 reported issues have been confirmed as real bugs. Developers also quickly fixed 20 of them by following our optimization suggestions.  This webpage gives the information of concerned subjects and lists all problems detected by PerfChecker.

1. Subject applications

Application name
Application category Revision no.
Size (LOC)
Downloads
Ushahidi
Communication 59fbb533d0
43.3K
10K - 50K
c:geo Entertainment 6e4a8d4ba8 37.7K 1M - 5M
Omnidroid Productivity 865 12.4K 1K - 5K
Open GPS Tracker Travel & Local 14ef48c15d 18.1K 100K - 500K
Geohash Droid
Entertainment 65bfe32755 7.0K 10K - 50K
Android Wifi Tether Communication 570 9.2K 1M - 5M
Osmand
Travel & Local 8a25c617b1 77.4K 500K - 1M
My Tracks Health & Fitness e6b9c6652f 27.1K 10M - 50M
WebSMS Communication 1f596fbd29 7.9K 100K - 500K
XBMC Remote Media & Video 594e4e5c98 53.3K 1M - 5M
ConnectBot Communication 716cdaa484 33.7K 1M - 5M
Firefox Communication 895a9905dd 122.9K 10M - 50M
APG Communication a6a371024b 98.2K 50K - 100K
FBReaderJ Books & References 0f02d4e923 103.4K 5M - 10M
Bitcoin Wallet Finance 12ca4c71ac 35.1K 100K - 500K
AnySoftKeyboard Tools 04bf623ec1 26.0K 500K - 1M
OI File Manager Productivity f513b4d0b6 7.8K 5M - 10M
IMSDroid Media & Video 553 21.9K 100K - 500K

2. Detected problems

Application name
# bug instances (HC) # bug instance (LM)
Ushahidi
9** 2*
c:geo 0 5*
Omnidroid 9 8
Open GPS Tracker 1 0
Geohash Droid
0 1
Android Wifi Tether 1 3
Osmand
18* 17*
My Tracks 2** 0
WebSMS 0 1*
XBMC Remote 1 0
ConnectBot 0 6
Firefox 1* 0
APG 4 8
FBReaderJ 6** 6
Bitcoin Wallet 4* 0
AnySoftKeyboard 2** 0
OI File Manager 1** 0
IMSDroid 10 0

Notes: "HC" stands for "frequently invoked Heavy-weight Callbacks". "LM" stands for "Lengthy operations in Main thread". "*" means "confirmed", and "**" means "confirmed and fixed".