Abstract

A program’s memory system performance is one of the key determinants of its overall performance. Lack of understanding of a program’s memory system behavior can lead to performance problems, the most common being memory fragmentation and memory leaks. In this paper, we present AllocRay, a visualization that animates memory allocation event trace information over a time period of execution of a program. Various modes of display with custom color mappings and zooming allow the programmer to see how heaps are used over time (by allocation type, age, size, or thread id). Custom displays also allow the programmer to quickly detect potential memory leaks and fragmentation problems. Composable filters enable the programmer to focus on specific issues. We describe the techniques used to enable processing of a huge number of trace events while enabling rapid response to visualization view changes. We also describe informal interviews with four expert programmers to examine the usability of the AllocRay design.