Vasco: A visual approach to explore object churn in framework-intensive applications

Bloat, and particularly object churn, is a common performance problem in framework-intensive applications. Object churn consists of an excessive use of temporary objects. Identifying and understanding sources of churn is a difficult and labor-intensive task, despite recent advances in automated analysis techniques. We present an interactive visualization approach designed to help developers quickly and intuitively explore the behavior of their application with respect to object churn. We have implemented this technique in Vasco, a new flexible and scalable visualization platform. Vasco is designed to minimize the cognitive effort required for the visualization task. We demonstrate the effectiveness of our approach by applying it to three framework-intensive applications and identifying previously unreported churn in a commercial system.

[1]  Matthew Arnold,et al.  Jolt: lightweight dynamic analysis and removal of object churn , 2008, OOPSLA.

[2]  Edith Schonberg,et al.  Making Sense of Large Heaps , 2009, ECOOP.

[3]  Nick Mitchell,et al.  Modeling Runtime Behavior in Framework-Based Applications , 2006, ECOOP.

[4]  Barbara G. Ryder,et al.  Blended analysis for performance understanding of framework-based applications , 2007, ISSTA '07.

[5]  Nick Mitchell,et al.  Visualizing the Execution of Java Programs , 2001, Software Visualization.

[6]  Walter Binder,et al.  Visualizing and exploring profiles with calling context ring charts , 2010, Softw. Pract. Exp..

[7]  Oscar Nierstrasz,et al.  Augmenting static source views in IDEs with dynamic metrics , 2009, 2009 IEEE International Conference on Software Maintenance.

[8]  Edith Schonberg,et al.  Finding low-utility data structures , 2010, PLDI '10.

[9]  Philippe Dugerdil,et al.  Execution Trace Visualization in a 3D Space , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

[10]  Atanas Rountev,et al.  Detecting inefficiently-used containers to avoid bloat , 2010, PLDI '10.

[11]  Danny B. Lange,et al.  Object-Oriented Program Tracing and Visualization , 1997, Computer.

[12]  Barbara G. Ryder,et al.  A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications , 2008, SIGSOFT '08/FSE-16.

[13]  Edith Schonberg,et al.  Patterns of Memory Inefficiency , 2011, ECOOP.

[14]  Edith Schonberg,et al.  Four Trends Leading to Java Runtime Bloat , 2010, IEEE Software.

[15]  Manish Gupta,et al.  Reuse, Recycle to De-bloat Software , 2011, ECOOP.

[16]  Michael D. Bond,et al.  LeakChaser: helping programmers narrow down causes of memory leaks , 2011, PLDI '11.

[17]  J. Stasko,et al.  Focus+context display and navigation techniques for enhancing radial, space-filling hierarchy visualizations , 2000, IEEE Symposium on Information Visualization 2000. INFOVIS 2000. Proceedings.

[18]  Matthew Arnold,et al.  Go with the flow: profiling copies to find runtime bloat , 2009, PLDI '09.

[19]  Jong-Deok Choi,et al.  Stack allocation and synchronization optimizations for Java using escape analysis , 2003, TOPL.

[20]  James R. Larus,et al.  Exploiting hardware performance counters with flow and context sensitive profiling , 1997, PLDI '97.

[21]  Ling Shao,et al.  Allocation wall: a limiting factor of Java applications on emerging multi-core platforms , 2009, OOPSLA.

[22]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[23]  Manos Reniers,et al.  ALMOST: Exploring Program Traces , 1999, Workshop on New Paradigms in Information Visualization and Manipulation.

[24]  Barbara G. Ryder,et al.  HI-C: diagnosing object churn in framework-based applications , 2010, FSE '10.

[25]  Jürgen Döllner,et al.  Visualizing massively pruned execution traces to facilitate trace exploration , 2009, 2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[26]  James T. Enns,et al.  Attention and Visual Memory in Visualization and Computer Graphics , 2012, IEEE Transactions on Visualization and Computer Graphics.

[27]  Matthias Hauswirth,et al.  Trevis: a context tree visualization & analysis framework and its use for classifying performance failure reports , 2010, SOFTVIS '10.