License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2015.296
URN: urn:nbn:de:0030-drops-52278
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2015/5227/
Go to the corresponding LIPIcs Volume Portal


Fang, Lu ; Dou, Liang ; Xu, Guoqing

PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification

pdf-format:
17.pdf (1.0 MB)


Abstract

Performance problems in managed languages are extremely difficult to find. Despite many efforts to find those problems, most existing work focuses on how to debug a user-provided test execution in which performance problems already manifest. It remains largely unknown how to effectively find performance bugs before software release. As a result, performance bugs often escape to production runs, hurting software reliability and user experience. This paper describes PerfBlower, a general performance testing framework that allows developers to quickly test Java programs to find memory-related performance problems. PerfBlower provides (1) a novel specification language ISL to describe a general class of performance problems that have observable symptoms; (2) an automated test oracle via \emph{virtual amplification}; and (3) precise reference-path-based diagnostic information via object mirroring. Using this framework, we have amplified three different types of problems. Our experimental results demonstrate that (1) ISL is expressive enough to describe various memory-related performance problems; (2) PerfBlower successfully distinguishes executions with and without problems; 8 unknown problems are quickly discovered under small workloads; and (3) PerfBlower outperforms existing detectors and does not miss any bugs studied before in the literature.

BibTeX - Entry

@InProceedings{fang_et_al:LIPIcs:2015:5227,
  author =	{Lu Fang and Liang Dou and Guoqing Xu},
  title =	{{PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification}},
  booktitle =	{29th European Conference on Object-Oriented Programming (ECOOP 2015)},
  pages =	{296--320},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-86-6},
  ISSN =	{1868-8969},
  year =	{2015},
  volume =	{37},
  editor =	{John Tang Boyland},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2015/5227},
  URN =		{urn:nbn:de:0030-drops-52278},
  doi =		{10.4230/LIPIcs.ECOOP.2015.296},
  annote =	{Keywords: Performance bugs, memory problems, managed languages, garbage collection}}
}

Keywords: Performance bugs, memory problems, managed languages, garbage collection}
Collection: 29th European Conference on Object-Oriented Programming (ECOOP 2015)
Issue Date: 2015
Date of publication: 29.06.2015


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI