Affiliation:
1. Tufts University, Medford, MA, USA
2. University of Massachusetts Amherst, Amherst, MA, USA
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Multilevel analysis of the java virtual machine based on kernel and userspace traces;Journal of Systems and Software;2020-09
2. A low-overhead and efficient Java object profiler on ART virtual machine;Journal of Intelligent & Fuzzy Systems;2018-10-01
3. Garbology: a study of how Java objects die;Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2017-10-25
4. DuckTracks;Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering;2017-04-17
5. Performance Modeling of Maximal Sharing;Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering;2016-03-12