Elephant tracks: portable production of complete and precise gc traces

  • Authors:
  • Nathan P. Ricci;Samuel Z. Guyer;J. Eliot B. Moss

  • Affiliations:
  • Tufts University, Medford, MA, USA;Tufts University, Medford, MA, USA;University of Massachusetts Amherst, Amherst, MA, USA

  • Venue:
  • Proceedings of the 2013 international symposium on memory management
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present Elephant Tracks (ET), a dynamic program analysis tool for Java that produces detailed traces of garbage collection-related events, including object allocations, object deaths, and pointer updates. Like prior work, our tracing tool is based on the Merlin algorithm [6,7], but offers several substantial new capabilities. First, it is much more precise than previous tools: it traces method entries and exits and measures time in terms of them, allowing it to place events precisely in the context of the program structure. Second, it is implemented using a combination of JVM Tool Interface (JVMTI)[13] callbacks and bytecode rewriting, and works with any standard JVM. Finally, it produces complete traces, including weak references, events from the Java Native Interface and sun.misc.Unsafe, and VM start up objects. In this paper we also explore the general design space of tracing tools, and carefully define the execution model that the traces represent.