Memory Leak Analysis using Time-Travel-based and Timeline-based Tree Evolution Visualizations
Sprache des Vortragstitels:
7th Conference on Smart Tools and Applications in Graphics (STAG'20
Sprache des Tagungstitel:
Memory leaks occur when no longer needed objects are unnecessarily kept alive. They can have a significant negative performance impact, leading to a crash in the worst case. Thus, tool support for heap evolution analysis, especially memory leak analysis, is essential. Unfortunately, most memory analysis tools lack advanced visualizations to facilitate this task. In this paper, we present an approach to use well-known tree visualization techniques for memory growth visualization. Our approach groups heap objects into memory trees based on a user-defined set of properties such as their types or their allocation sites at multiple points in time. We present two novel approaches to inspect how these trees evolve over time: In our time-travelbased visualization, a single space-filling tree visualization shows the monitored application's heap memory at a given point in time. Users can step back and forth in time, causing the visualization to update itself. In our timeline-based visualization, a time-series chart depicts the overall memory consumption over time. Above this chart, multiple memory tree visualizations are shown side-by-side for a number of user-selected points in time. Using these techniques to visually inspect the evolution of the heap over time should enable users to gain new insights and to detect (problematic) memory trends in their applications. To demonstrate the feasibility and applicability of the presented approach, we integrated it into AntTracks, a trace-based memory monitoring tool and applied it in two memory leak case studies.