Java virtual machine profiler interface

  • Authors:
  • D. Viswanathan;S. Liang

  • Affiliations:
  • Extricity Software, Inc., 555 Twin Dolphin Drive, Suite 600, Redwood Shores, California;Sun Microsystems, Inc., 901 San Antonio Road, CUP02-302, Palo Alto, California

  • Venue:
  • IBM Systems Journal
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present the JavaTM Virtual Machine Profiler Interface (JVMPI), which defines a general-purpose and portable mechanism for obtaining comprehensive profiling data from the Java virtual machine. We show that it is extensible, nonintrusive, and powerful enough to suit the needs of different profilers and virtual machine implementations. With the JVMPI, most profiler vendors will not need to build custom instrumentation in the Java virtual machine. In addition, we solve challenges to profiler design and implementation posed by the multithreading and garbage collection support provided by the Java virtual machine. Profilers based on the JVMPI can produce thread-aware CPU time profiles, uncover heavy memory allocation sites, detect unnecessary object retention, pinpoint scalability problems caused by high monitor contention, reveal thread deadlocks, and perform interactive profiling with minimum overhead. We also describe HPROF, a profiler based on JVMPI, developed by us to demonstrate the power of JVMPI.