% 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.