Detecting Performance Problems via Similar Memory-Access Patterns

Thumbnail

Event details

Date 02.11.2012
Hour 17:1518:30
Speaker Darko Marinov
http://mir.cs.illinois.edu/~marinov
Location
Category Miscellaneous
Performance bugs are inefficient code regions that create significant
performance degradation.  Performance bugs can easily escape into
production runs due to insufficient support for in-house
performance-bug testing.  Developers typically use profilers to find
performance bugs, but unfortunately profilers can miss performance
bugs even when they are executed.

This talk presents Toddler, a novel technique for finding performance
bugs.  Toddler reports code loops whose computation has repetitive and
partially similar memory-access patterns across loop iterations.  Such
repetitive work is likely unnecessary and can be done faster.  In
testing terms, Toddler is primarily an oracle (but provides additional
information to aid fault localization), whereas profilers aid in fault
localization.

We implemented a Toddler tool for Java and evaluated it on 9 popular
Java codebases.  Our experiments with 11 previously known, real-world
performance bugs show that Toddler finds these bugs with a higher
accuracy than the standard Java profiler.  Moreover, using Toddler we
found 42 new real-world bugs in popular Java projects such as Ant,
Google Core Libraries, JUnit, Apache Collections, JDK, and JFreeChart.
Based on our bug reports, developers so far fixed 10 bugs and
confirmed 6 more as real bugs.

Joint work with Adrian Nistor, Linhai Song, and Shan Lu

Short Bio: Darko Marinov is an Associate Professor in the Department
of Computer Science at the University of Illinois at Urbana-Champaign,
USA.  His main research interests are in Software Engineering, with
focus on Software Testing.  He has a lot of fun looking for software
bugs.  He published over 40 conference papers, including three that
won the ACM SIGSOFT Distinguished Paper awards.  His work has been
supported by IBM, Intel, Microsoft, NSF, and Samsung.  Home page:
http://mir.cs.illinois.edu/~marinov

Practical information

  • Informed public
  • Free

Organizer

Contact

Event broadcasted in

Share