This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Abstracting Runtime Heaps for Program Understanding
June 2013 (vol. 39 no. 6)
pp. 774-786
Mark Marron, Imdea Software Institute, Boadilla del Monte
Cesar Sanchez, Imdea Software Institute, Boadilla del Monte
Zhendong Su, University of California, Davis, Davis
Manuel Fahndrich, Microsoft Research
Modern programming environments provide extensive support for inspecting, analyzing, and testing programs based on the algorithmic structure of a program. Unfortunately, support for inspecting and understanding runtime data structures during execution is typically much more limited. This paper provides a general purpose technique for abstracting and summarizing entire runtime heaps. We describe the abstract heap model and the associated algorithms for transforming a concrete heap dump into the corresponding abstract model as well as algorithms for merging, comparing, and computing changes between abstract models. The abstract model is designed to emphasize high-level concepts about heap-based data structures, such as shape and size, as well as relationships between heap structures, such as sharing and connectivity. We demonstrate the utility and computational tractability of the abstract heap model by building a memory profiler. We use this tool to identify, pinpoint, and correct sources of memory bloat for programs from DaCapo.
Index Terms:
Abstracts,Concrete,Shape,Runtime,Arrays,Computational modeling,program understanding,Heap structure,runtime analysis,memory profiling
Citation:
Mark Marron, Cesar Sanchez, Zhendong Su, Manuel Fahndrich, "Abstracting Runtime Heaps for Program Understanding," IEEE Transactions on Software Engineering, vol. 39, no. 6, pp. 774-786, June 2013, doi:10.1109/TSE.2012.69
Usage of this product signifies your acceptance of the Terms of Use.