Characterizing and detecting performance bugs for smartphone applications

@article{Liu2014CharacterizingAD,
  title={Characterizing and detecting performance bugs for smartphone applications},
  author={Yepang Liu and Chang Xu and S. C. Cheung},
  journal={Proceedings of the 36th International Conference on Software Engineering},
  year={2014}
}
  • Yepang Liu, Chang Xu, S. Cheung
  • Published 31 May 2014
  • Computer Science
  • Proceedings of the 36th International Conference on Software Engineering
Smartphone applications’ performance has a vital impact on user experience. However, many smartphone applications suffer from bugs that cause significant performance degradation, thereby losing their competitive edge. Unfortunately, people have little understanding of these performance bugs. They also lack effective techniques to fight with such bugs. To bridge this gap, we conducted a study of 70 real-world performance bugs collected from eight large-scale and popular Android applications. We… 

Figures and Tables from this paper

How developers detect and fix performance bottlenecks in Android apps
TLDR
The findings indicate that developers heavily rely on user reviews and manual execution of the apps for detecting performance bugs, and available tools are mostly for profiling and do not help in detecting and fixing performance issues automatically.
Investigating types and survivability of performance bugs in mobile apps
TLDR
The largest study at date investigating performance bugs in mobile apps is presented and a taxonomy of the types of performance bugs affecting Android and iOS apps is defined, which aims to help researchers and apps developers in building performance-bugs detection tools and focusing their verification and validation activities on the most frequent types ofperformance bugs.
Large-Scale Analysis of Framework-Specific Exceptions in Android Apps
  • Lingling Fan, Ting Su, Z. Su
  • Computer Science
    2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)
  • 2018
TLDR
Over a four-month long effort, 16,245 unique exception traces are collected from 2,486 open-source Android apps, and it is observed that framework-specific exceptions account for the majority of these crashes.
Systematically Testing and Diagnosing Responsiveness for Android Apps
TLDR
Preliminary experiments with 30 real-world apps show that AppSPIN can detect 123 responsiveness bugs and successfully diagnose the cause for 87% cases, within an average of 15-minute test time.
Characterizing the evolution of statically-detectable performance issues of Android apps
TLDR
This paper empirically investigates how potential performance issues identified by a popular static analysis tool — Android Lint — are actually resolved in 316 open source Android apps among 724 apps analyzed and finds how some issues, especially related to the lack of resource recycle, tend to be more frequent than others.
ServDroid: detecting service usage inefficiencies in Android applications
TLDR
This paper identifies four anti-patterns of such service usage inefficiency bugs, including premature create, late destroy, premature destroy, and service leak, and presents a static analysis technique, ServDroid, to automatically and effectively detect them based on the anti- patterns.
Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps
  • Lili Wei, Yepang Liu, S. Cheung
  • Computer Science
    2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE)
  • 2016
TLDR
An empirical study on 191 real-world compatibility issues collected from popular open-source Android apps is conducted, characterized the symptoms and root causes of compatibility issues, and disclosed that the patches of these issues exhibit common patterns.
Inferring Performance Bug Patterns from Developer Commits
TLDR
A study of more than 700 performance bug fixing commits across 13 popular open source projects written in C and C++ and investigate the relative frequency of bug types as well as their complexity shows that many of these fixes follow a small set of bug patterns, and that the number of lines needed to fix performance bugs is highly project dependent.
Understanding and Detecting Fragmentation-Induced Compatibility Issues for Android Apps
TLDR
An empirical study on 220 real-world compatibility issues collected from five popular open-source Android apps, and a technique, FicFinder, to automatically detect compatibility issues in Android apps that can uncover previously-unknown issues are proposed.
Characterizing and Detecting CUDA Program Bugs
TLDR
This paper establishes the first lightweight general CUDA bug detection framework, namely Simulee, to simulate CUDA program execution by interpreting the corresponding llvm bytecode and collecting the memory-access information to automatically detect CUDA synchronization bugs.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 90 REFERENCES
Understanding and detecting real-world performance bugs
Developers frequently use inefficient code sequences that could be fixed by simple patches. These inefficient code sequences can cause significant performance degradation and resource waste, referred
Toddler: Detecting performance problems via similar memory-access patterns
TLDR
Toddler is presented, a novel automated oracle for performance bugs, which enables testing for performance Bugs to use the well established and automated process of testing for functional bugs, and is implemented for Java.
Panappticon: Event-based tracing to measure mobile application and platform performance
TLDR
A 14-user, one-month study of an Android smartphone system instrumented with Panappticon revealed a number of specific problems and areas for improvement that may be of interest to system designers, application developers, and device manufactures.
Characterizing and detecting resource leaks in Android applications
TLDR
This paper presents a lightweight static analysis tool called Relda, which can automatically analyze an application's resource operations and locate the resource leaks, and proposes an automatic method for detecting resource leaks based on a modified Function Call Graph.
Discovering, reporting, and fixing performance bugs
TLDR
It is found that fixing performance bugs has a higher chance to introduce new functional bugs than fixing non-performance bugs, which implies that developers may not need to be over-concerned about fixed performance bugs.
Testing for poor responsiveness in android applications
TLDR
The proposed approach successfully uncovered 61 responsiveness problems in eight open-source Android applications, due to inappropriate usage of resources such as network, flash storage, on-device database, and bitmaps.
Catch me if you can: performance bug detection in the wild
TLDR
This paper argues that -- especially in the case of interactive applications -- traditional profilers find irrelevant problems but fail to find relevant bugs, and introduces lag hunting, an approach that identifies perceptible performance bugs by monitoring the behavior of applications deployed in the wild.
ADEL: an automatic detector of energy leaks for smartphone applications
TLDR
ADEL (Automatic Detector of Energy Leaks) consists of taint-tracking enhancements to the Android platform that detects and isolates energy leaks resulting from unnecessary network communication by tracing the direct and indirect use of received data to determine whether they ever affect the user.
A qualitative study on performance bugs
TLDR
Qualitatively studies a random sample of 400 performance and non-performance bug reports of Mozilla Firefox and Google Chrome across four dimensions and finds that developers and users face problems in reproducing performance bugs and have to spend more time discussing performance bugs than other kinds of bugs.
Mantis: Automatic Performance Prediction for Smartphone Applications
TLDR
This work presents Mantis, a framework for predicting the performance of Android applications on given inputs automatically, accurately, and efficiently that synergistically combines techniques from program analysis and machine learning.
...
1
2
3
4
5
...