MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Abstract Javana: A System for Building Customized Java Program Analysis Tools

Download:
Download as a PDF
by Jonas Maebe, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere
http://buytaert.net/files/oopsla06-paper.pdf
Add To MetaCart

Abstract:

Understanding the behavior of applications running on high-level language virtual machines, as is the case in Java, is non-trivial because of the tight entanglement at the lowest execution level between the application and the virtual machine. This paper proposes Javana, a system for building Java program analysis tools. Javana provides an easy-to-use instrumentation infrastructure that allows for building customized profiling tools very quickly. Javana runs a dynamic binary instrumentation tool underneath the virtual machine. The virtual machine communicates with the instrumentation layer through an event handling mechanism for building a vertical map that links low-level native instruction pointers and memory addresses to high-level language concepts such as objects, methods, threads, lines of code, etc. The dynamic binary instrumentation tool then intercepts all memory accesses and instructions executed and provides the Javana end user with highlevel language information for all memory accesses and natively executed instructions. We demonstrate the power of Javana through a number of applications: memory address tracing, vertical cache simulation and object lifetime computation. For each of these applications, the instrumentation specification requires only a small number of lines of code. Developing similarly powerful profiling tools within a virtual machine (as done in current practice) is both time-consuming and error-prone; in addition, the accuracy of the obtained profiling results might be questionable as we show in this paper.

Citations

998 Aspect-Oriented Programming – Kiczales, Lamping, et al. - 1997
696 An Overview of AspectJ – Kiczales, Hilsdale, et al. - 2001
684 ATOM: A system for building customized program analysis tools – Srivastava, Eustace - 1994
235 The JalapeƱo virtual machine – ALPERN, ATTANASIO, et al.
234 EEL: Machine-Independent Executable Editing – Larus, Schnarr - 1995
145 Pin: Building customized program analysis tools with dynamic instrumentation. InPLDI – Luk, Cohn, et al. - 2005
126 Valgrind: A program supervision framework – Nethercote, Seward
59 Extending UML with Aspects: Aspect Support in the Design Phase – Suzuki, Yamamoto
45 and T.Austin. The simplescalar tool set – Burger - 1999
42 Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations – Shuf, Serrano, et al. - 2001
37 Dynamic Metrics for Java – Dufour, Driesen, et al. - 2003
32 AspectC++: An aspect-oriented extension to the C++ programming language – Spinczyk, Gal, et al. - 2002
30 Bosschere. DIOTA: Dynamic Instrumentation, Optimization and Transformation of Applications – Maebe, Ronsse, et al. - 2002
27 Vertical profiling: Understanding the behavior of object-oriented applications – Hauswirth, Sweeney, et al. - 2004
22 Using hardware performance monitors to understand the behavior of Java applications – Sweeney, Hauswirth, et al. - 2004
20 S.: Heap profiling for space-efficient java – Shaham, Kolodner, et al. - 2001
10 Bosschere. Method-level phase behavior in Java workloads – Georges, Buytaert, et al. - 2004
8 TinyC 2 : Towards Building a Dynamic Weaving Aspect Language for C – Zhang, Jacobsen - 2003
7 Automating vertical profiling – Hauswirth, Diwan, et al. - 2005
6 J: A tool for dynamic analysis of Java programs – Dufour, Hendren, et al. - 2003
6 Bosschere. Instrumenting self-modifying code – Maebe, De - 2003
5 A perturbation-free replay platform for cross-optimized multithreaded application – Choi, Alpern, et al. - 2001
4 Selective profiling of Java applications using dynamic bytecode instrumentation – Dmitriev - 2004
3 Bosschere. The design and implementation of FIT: a flexible instrumentation toolkit – Bus, Chanet, et al. - 2004
3 Languages for dynamic instrumentation – Reiss, Renieris - 2003
1 Java Performance Profiling using the VTune Performance Analyzer. Intel – Donnell - 2004