ACM Home Page
Please provide us with feedback. Feedback
Javana: a system for building customized Java program analysis tools
Full text PdfPdf (286 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications table of contents
Portland, Oregon, USA
SESSION: Performance table of contents
Pages: 153 - 168  
Year of Publication: 2006
ISBN:1-59593-348-4
Also published in ...
Authors
Jonas Maebe  ELIS, Ghent University, Belgium
Dries Buytaert  ELIS, Ghent University, Belgium
Lieven Eeckhout  ELIS, Ghent University, Belgium
Koen De Bosschere  ELIS, Ghent University, Belgium
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 72,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1167473.1167487
What is a DOI?

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 high-level 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
4
 
5
 
6
J. Donnell. Java Performance Profiling using the VTune Performance Analyzer. Intel, 2004.
7
8
9
10
11
 
12
 
13
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 220--242, 1997.
14
15
 
16
J. Maebe and K. De Bosschere. Instrumenting self-modifying code. In Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG), pages 103--113, Sept. 2003.
 
17
J. Maebe, M. Ronsse, and K. De Bosschere. DIOTA: Dynamic instrumentation, optimization and transformation of applications. In Proceedings of the 2002 Workshop on Binary Translation (WBT) held in conjunction with the International Conference on Parallel Architectures and Compilation Techniques (PACT), Sept. 2002.
 
18
N. Nethercote and J. Seward. Valgrind: A program supervision framework. In Electronic Notes in Theoretical Computer Science, volume 89. Elsevier, 2003.
 
19
S. Reiss and M. Renieris. Languages for dynamic instrumentation. In Proceedings of the Workshop on Dynamic Analysis (WODA), May 2003.
20
21
 
22
 
23
A. Srivastava and A. Eustace. ATOM: A system for building customized program analysis tools. Technical Report 94/2, Western Research Lab, Compaq, Mar. 1994.
 
24
 
25
P. Sweeney, M. Hauswirth, B. Cahoon, P. Cheng, A. Diwan, D. Grove, and M. H. d. Using hardware performance monitors to understand the behavior of Java applications. In Proceedings of the 3rd Virtual Machine Research and Technology Symposium (VM), pages 57--72, May 2004.
 
26
C. Zhang and H.-A. Jacobsen. TinyC2: Towards building a dynamic weaving aspect language for C. In Proceedings of the Foundations of Aspect-Oriented Languages Workshop at AOSD 2003, Mar. 2003.


Collaborative Colleagues:
Jonas Maebe: colleagues
Dries Buytaert: colleagues
Lieven Eeckhout: colleagues
Koen De Bosschere: colleagues