Catch Me If You Can: Performance Bug Detection in the Wild

Conference Paper: OOPSLA'11, October, 2011

Profilers help developers to find and fix performance problems. But do they find performance bugs – performance problems that real users actually notice?

In this paper we argue that – especially in the case of interactive applications – traditional profilers find irrelevant problems but fail to find relevant bugs.

We then introduce lag hunting, an approach that identifies perceptible performance bugs by monitoring the behavior of applications deployed in the wild. The approach transparently produces a list of performance issues, and for each issue provides the developer with information that helps in finding the cause of the problem.

We evaluate our approach with an experiment where we monitor an application used by 24 users for 1958 hours over the course of 3-months. We characterize the resulting 881 issues, and we successfully find and fix the causes of a set of representative examples.

@inproceedings{Jovic11, author = {Jovic, Milan and Adamoli, Andrea and Hauswirth, Matthias}, title = {Catch me if you can: performance bug detection in the wild}, booktitle = {Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications}, series = {OOPSLA '11}, year = {2011}, isbn = {978-1-4503-0940-0}, location = {Portland, Oregon, USA}, pages = {155--170}, numpages = {16}, url = {http://doi.acm.org/10.1145/2048066.2048081}, doi = {http://doi.acm.org/10.1145/2048066.2048081}, acmid = {2048081}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {latency bug, perceptible performance, profiling}, }