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
Notes: "HC" stands for "frequently invoked
Heavy-weight
Callbacks".
"LM" stands for "
Lengthy
operations in
Main
thread". "*" means "confirmed", and "**" means "confirmed and fixed".