
%         Registration                    Profiling Java on Linux             
%  [2]Register/Submit Proposal John Kacur (jekacur@ca.ibm.com)                

In this paper, I will examine two profilers.   
IBM's Open Source Performance Inspector and    
OProfile which contains code that has been     
officially accepted into the Linux Kernel.     
Currently OProfile doesn't work with programs  
that dynamically generate code, such as Python 
and Java JITs. Various people have proposed    
patches that record events in anonymously      
mapped memory regions as raw virtual           
addresses, instead of the usual tuple of       
binary image and offset. This information can  
be postprocessed by matching it with the       
output generated by running a Java program     
with Performance Inspector's JPROF which uses  
JVMPI to record addresses of JITted methods.   
In this paper, I will discuss the details of   
profiling Java, specifically looking at the    
inner workings of OProfile and Performance     
Inspector. I will discuss problems that we     
have encountered with both tools and our       
attempts to resolve them. Finally, I will      
demonstrate profiling a java program to show   
the kind of information that can be obtained.  


