• DocumentCode
    56746
  • Title

    Abstracting runtime heaps for program understanding

  • Author

    Marron, M. ; Sanchez, Cesar ; Zhendong Su ; Fahndrich, M.

  • Author_Institution
    Fac. Inf., Imdea Software Inst., Madrid, Spain
  • Volume
    39
  • Issue
    6
  • fYear
    2013
  • fDate
    Jun-13
  • Firstpage
    774
  • Lastpage
    786
  • Abstract
    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.
  • Keywords
    data structures; merging; program diagnostics; program testing; DaCapo; abstract heap model computational tractability; abstract heap model utility; concrete heap dump; heap structure connectivity; heap structure sharing; high-level concepts; memory bloat; memory profiler; program algorithmic structure; program analysis; program comparison; program computing; program inspection; program merging; program testing; runtime data structure relationships; runtime heap abstracting; runtime heap summarization; Abstracts; Arrays; Computational modeling; Concrete; Runtime; Shape; Heap structure; memory profiling; program understanding; runtime analysis;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2012.69
  • Filename
    6331492