Visualizing and exploring profiles with calling context ring charts

Calling context profiling is an important technique for analyzing the performance of object‐oriented software with complex inter‐procedural control flow. The Calling Context Tree (CCT) is a common data structure that stores dynamic metrics, such as CPU time, separately for each calling context. As CCTs may comprise millions of nodes, there is a need for a condensed visualization that eases the localization of performance bottlenecks. In this article, we discuss Calling Context Ring Charts (CCRCs), a compact visualization for CCTs, where callee methods are represented in ring segments surrounding the caller's ring segment. In order to reveal hot methods, their callers, and callees, the ring segments can be sized according to a chosen dynamic metric. We describe two case studies where CCRCs help us to detect and fix performance problems in applications. A performance evaluation also confirms that our implementation can efficiently handle large CCTs. Copyright © 2010 John Wiley & Sons, Ltd.

[1]  Walter Binder,et al.  Exploring large profiles with calling context ring charts , 2010, WOSP/SIPEW '10.

[2]  Jürgen Ebert,et al.  Collapsible cylindrical trees: a fast hierarchical navigation technique , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[3]  Jong-Deok Choi,et al.  Accurate, efficient, and adaptive calling context profiling , 2006, PLDI '06.

[4]  John Whaley,et al.  A portable sampling-based profiler for Java virtual machines , 2000, JAVA '00.

[5]  Ben Shneiderman,et al.  Tree-maps: a space-filling approach to the visualization of hierarchical information structures , 1991, Proceeding Visualization '91.

[6]  Richard F. Riesenfeld,et al.  A Survey of Radial Methods for Information Visualization , 2009, IEEE Transactions on Visualization and Computer Graphics.

[7]  Ramana Rao,et al.  The Hyperbolic Browser: A Focus + Context Technique for Visualizing Large Hierarchies , 1996, J. Vis. Lang. Comput..

[8]  Hausi A. Müller,et al.  Manipulating and documenting software structures using SHriMP views , 1995, Proceedings of International Conference on Software Maintenance.

[9]  Ivan Herman,et al.  Graph Visualization and Navigation in Information Visualization: A Survey , 2000, IEEE Trans. Vis. Comput. Graph..

[10]  Pieter Deelen,et al.  Visualization of Dynamic Program Aspects , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[11]  Erik-Jan van der Linden,et al.  Visualizing Business Data with Generalized Treemaps , 2006, IEEE Transactions on Visualization and Computer Graphics.

[12]  Jock D. Mackinlay,et al.  Cone Trees: animated 3D visualizations of hierarchical information , 1991, CHI.

[13]  Scott A. Mahlke,et al.  Using profile information to assist classic code optimizations , 1991, Softw. Pract. Exp..

[14]  Josef Weidendorfer,et al.  A Tool Suite for Simulation Based Analysis of Memory Access Behavior , 2004, International Conference on Computational Science.

[15]  Keith Andrews,et al.  Information Slices: Visualising and Exploring Large Hierarchies using Cascading, Semi-Circular Discs , 1998 .

[16]  Alexandru Telea,et al.  2009 5TH IEEE INTERNATIONAL WORKSHOP ON VISUALIZING SOFTWARE FOR UNDERSTANDING AND ANALYSIS , 2009 .

[17]  Xuxian Jiang,et al.  Automatic Protocol Format Reverse Engineering through Context-Aware Monitored Execution , 2008, NDSS.

[18]  Marilyn Tremaine CHI '01 Extended Abstracts on Human Factors in Computing Systems , 2001, CHI Extended Abstracts.

[19]  Adi Shamir,et al.  How to share a secret , 1979, CACM.

[20]  Michael D. Bond,et al.  Probabilistic calling context , 2007, OOPSLA.

[21]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

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

[23]  Atanas Rountev,et al.  Coverage Criteria for Testing of Object Interactions in Sequence Diagrams , 2005, FASE.

[24]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[25]  Walter Binder,et al.  CCCP: complete calling context profiling in virtual execution environments , 2009, PEPM '09.

[26]  Michael D. Ernst,et al.  ReCrash: Making Software Failures Reproducible by Preserving Object States , 2008, ECOOP.

[27]  John T. Stasko,et al.  An evaluation of space-filling information visualizations for depicting hierarchical structures , 2000, Int. J. Hum. Comput. Stud..

[28]  Tamara Munzner,et al.  Drawing Large Graphs with H3Viewer and Site Manager , 1998, GD.

[29]  Walter Binder,et al.  Visualizing Calling Context profiles with Ring Charts , 2009, 2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[30]  Padraic Neville,et al.  A comparison of 2-D visualizations of hierarchies , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[31]  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.

[32]  Jarke J. van Wijk,et al.  Botanical visualization of huge hierarchies , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[33]  Michael Balzer,et al.  Voronoi treemaps for the visualization of software metrics , 2005, SoftVis '05.

[34]  Jarke J. van Wijk,et al.  Trace Visualization Using Hierarchical Edge Bundles and Massive Sequence Views , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

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

[36]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[37]  Chang-Sung Jeong,et al.  Reconfigurable disc trees for visualizing large hierarchical information space , 1998, Proceedings IEEE Symposium on Information Visualization (Cat. No.98TB100258).

[38]  J. Michael Spivey,et al.  Fast, accurate call graph profiling , 2004, Softw. Pract. Exp..

[39]  Krzysztof Czarnecki,et al.  Supporting Framework Use via Automatically Extracted Concept-Implementation Templates , 2009, ECOOP.

[40]  Donald E. Porter,et al.  Improved error reporting for software that uses black-box components , 2007, PLDI '07.

[41]  Elliot Berk,et al.  JLex: A lexical analyzer generator for Java , 2004 .

[42]  Walter Binder,et al.  Platform-independent profiling in a virtual execution environment , 2009 .

[43]  Brian F. Cooper,et al.  ProfBuilder: A Package for Rapidly Building Java Execution Prolers , 1998 .

[44]  Ben Shneiderman,et al.  Ordered treemap layouts , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[45]  Patrice Godefroid,et al.  Software partitioning for effective automated unit testing , 2006, EMSOFT '06.