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.
- Ole Agesen, David Detlefs, and J. Eliot B. Moss. Garbage collection and local variable type-precision and liveness in Java virtual machines. In PLDI, pages 269?-279, 1998. Google Scholar
Digital Library
- Bowen Alpern, Steve Augart, Stephen M. Blackburn, Maria A. Butrico, Anthony Cocchi, Perry Cheng, Julian Dolby, Stephen J. Fink, David Grove, Michael Hind, Kathryn S. McKinley, Mark F. Mergen, J. Eliot B. Moss, Ton Anh Ngo, Vivek Sarkar, and Martin Trapp. The Jikes Research Virtual Machine project: Building an open-source research community. IBM Systems Journal, 44 (2): 399--418, 2005. Google Scholar
Digital Library
- Eric Bruneton, Romain Langlet, and Thierry Coupaye. ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems, Grenoble, France, November 2002. 12 pages.Google Scholar
- James Foucar. A Platform for Research into Object-Level Trace Generation. PhD thesis, The University of New Mexico, 2006.Google Scholar
- Samuel Z. Guyer, Kathryn S. McKinley, and Daniel Frampton. Free-Me: A static analysis for automatic individual object reclamation. ACM SIGPLAN Notices, 41 (6): 364--375, 2006. Google Scholar
Digital Library
- Matthew Hertz, Stephen M. Blackburn, J. Eliot B. Moss, Kathryn S. McKinley, and Darko Stefanović. Error-free garbage collection traces: How to cheat and not get caught. SIGMETRICS Perform. Eval. Rev., 30: 140--151, June 2002. ISSN 0163--5999. http://doi.acm.org/10.1145/511399.511352. URL http://doi.acm.org/10.1145/511399.511352. Google Scholar
Digital Library
- Matthew Hertz, Stephen M. Blackburn, J. Eliot B. Moss, Kathryn S. McKinley, and Darko Stefanovic. Generating object lifetime traces with Merlin. ACM Transactions on Programming Languages and Systems, 28 (3): 476--516, 2006. Google Scholar
Digital Library
- Martin Hirzel, Amer Diwan, and Johannes Henkel. On the usefulness of type and liveness accuracy for garbage collection and leak detection. ACM Transactions on Programming Languages and Systems (TOPLAS), 24 (6): 593--624, 2002. Google Scholar
Digital Library
- Martin Hirzel, Amer Diwan, and Matthew Hertz. Connectivity-based garbage collection. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 359--373, 2003. ISBN 1--58113--712--5. Google Scholar
Digital Library
- Hajime Inoue, Darko Stefanović, and Stephanie Forrest. On the prediction of Java object lifetimes. IEEE Transactions on Computers, 55 (7): 880--892, 2006. Google Scholar
Digital Library
- Richard E. Jones and Chris Ryder. A study of Java object demographics. In Proceedings of the 7th International Symposium on Memory Management, pages 121--130. ACM, 2008. Google Scholar
Digital Library
- Jonathan M. Lambert and James F. Power. Platform independent timing of Java virtual machine bytecode instructions. Electronic Notes in Theoretical Computer Science, 220 (3): 97--113, 2008. Google Scholar
Digital Library
- Sun Microsystems. JVM Tool Interface, 2004. http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html.Google Scholar
- Richard A. Uhlig and Trevor N. Mudge. Trace-driven memory simulation: A survey. ACM Computing Surveys (CSUR), 29 (2): 128--170, 1997. Google Scholar
Digital Library
Index Terms
Elephant tracks: portable production of complete and precise gc traces
Recommendations
Elephant Tracks: generating program traces with object death records
PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in JavaWe introduce Elephant Tracks (ET), a dynamic program analysis tool for producing traces of garbage collection events, including object allocations, object deaths, and pointer updates. Like prior work, our tracing tool is based on the Merlin algorithm ...
Elephant tracks: portable production of complete and precise gc traces
ISMM '13: Proceedings of the 2013 international symposium on memory managementWe 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 ...
Elephant tracks: portable production of complete and precise gc traces
ISMM '13: Proceedings of the 2013 international symposium on memory managementWe 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 ...







Comments