A map of the heap: revealing design abstractions in runtime structures

Visual representations of runtime software structures such as heap memory graphs can aid in debugging and help to develop program understanding. However, such structures may contain thousands of objects and have no obvious spatial organisation. If the program contains flaws the appearance of objects may well differ from the user's expectations. Navigating these graphs can be challenging to the user as the space is abstract and potentially unfamiliar. To alleviate this problem we employ a systematic approach grounded in the principles of navigational landmarks. We identify subgraphs within the heap that correspond to significant design abstractions and apply various visualization techniques to highlight and organise these structures. The aim is to provide the user with recognisable features that are linked to more familiar representations of the software. We claim that the enhanced representation can support existing memory debugging tools by providing the user with a usable 'map' of an otherwise abstract data space. The results are demonstrated using data extracted from an instrumented version of the Visualization Tool Kit (VTK), a complex and widely-used architecture for data visualization.

[1]  Tim Dwyer,et al.  Scalable, Versatile and Simple Constrained Graph Layout , 2009, Comput. Graph. Forum.

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

[3]  Sougata Mukherjea,et al.  Visualizing the World-Wide Web with the Navigational View Builder , 1995, Comput. Networks ISDN Syst..

[4]  Steffen Staab,et al.  Mining Ontologies from Text , 2000, EKAW.

[5]  Richard E. Jones,et al.  GCspy: an adaptable heap visualisation framework , 2002, OOPSLA '02.

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

[7]  Stephen C. Hirtle,et al.  The Nature of Landmarks for Real and Electronic Spaces , 1999, COSIT.

[8]  Mark Chignell,et al.  Hypermedia: design for browsing , 1993 .

[9]  Steven P. Reiss,et al.  Visualizing the Java heap to detect memory problems , 2009, 2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[10]  Andreas Zeller,et al.  Visualizing Memory Graphs , 2001, Software Visualization.

[11]  Gary Sevitsky,et al.  Visualizing reference patterns for solving memory leaks in Java , 1999, Concurr. Pract. Exp..

[12]  Ben Shneiderman,et al.  The eyes have it: a task by data type taxonomy for information visualizations , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[13]  William J. Schroeder,et al.  The Visualization Toolkit , 2005, The Visualization Handbook.

[14]  Edward R. Tufte,et al.  Envisioning Information , 1990 .

[15]  David Auber,et al.  Tulip - A Huge Graph Visualization Framework , 2004, Graph Drawing Software.

[16]  Barbara Tversky,et al.  Animation: can it facilitate? , 2002, Int. J. Hum. Comput. Stud..

[17]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[18]  Ivan Herman,et al.  Tree Visualisation and Navigation Clues for Information Visualisation , 1998, Comput. Graph. Forum.

[19]  J. J. van Wijk,et al.  Visualization of transition graphs with custom diagrams , 2007 .

[20]  John Q. Walker,et al.  A node‐positioning algorithm for general trees , 1990, Softw. Pract. Exp..

[21]  Colin Ware,et al.  Visual Thinking for Design , 2008 .

[22]  R. Daniel Bergeron,et al.  Visualization reference models , 1993, VIS '93.

[23]  Barbara Tversky,et al.  Cognitive Maps, Cognitive Collages, and Spatial Mental Models , 1993, COSIT.

[24]  Maureen C. Stone,et al.  Alpha, contrast and the perception of visual metadata , 2008, CIC.

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

[26]  Jean-Daniel Fekete,et al.  Author Manuscript, Published in "sigchi Conference on Human Factors in Computing Systems Topology-aware Navigation in Large Networks , 2022 .

[27]  Norman G. Vinson,et al.  Design guidelines for landmarks to support navigation in virtual environments , 1999, CHI '99.