ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic
Thu 9 Jul 2015 11:00 - 11:30 at Bohemia - Developer Assistance Chair(s): Michael Van De Vanter

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 SDL to describe a general class of performance problems that have observable symptoms; (2) an automated test oracle via 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) SDL 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.

Thu 9 Jul

research-track
10:30 - 12:00: Research Track - Developer Assistance at Bohemia
Chair(s): Michael Van De Vanter
research-track143643060000010:30 - 11:00
Talk
research-track143643240000011:00 - 11:30
Talk
research-track143643420000011:30 - 12:00
Talk