Introspection of a Java™ virtual machine under simulation

  • Authors:
  • Greg Wright;Phil McGachey;Erika Gunadi;Mario Wolczko

  • Affiliations:
  • Sun Microsystems Laboratories, Menlo Park, CA;Dept. of Computer Sciences, Purdue University, West Lafayette, IN;Dept. of Electrical & Computer Engineering, University of Wisconsin-Madison, Madison, WI;Sun Microsystems Laboratories, Menlo Park, CA

  • Venue:
  • Introspection of a Java™ virtual machine under simulation
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Virtual machines are commonly used in commercially-significant systems, for example, Sun Microsystems' Java and Microsoft's .NET. The virtual machine offers many advantages to the system designer and administrator, but complicates the task of workload characterization: it presents an extra abstraction layer between the application and observed hardware effects. Understanding the behavior of the virtual machine is therefore important for all levels of the system architecture. We have constructed a tool which examines the state of a Sun Java HotSpot™ virtual machine running inside Virtutech's Simics execution-driven simulator. We can obtain detailed information about the virtual machine and application without disturbing the state of the simulation. For data, we can answer such questions as: Is a given address in the heap? If so, in which object? Of what class? For code, we can map program counter values back to Java methods and approximate Java source line information. Our tool allows us to relate individual events in the simulation, for example, a cache miss, to the higher-level behavior of the application and virtual machine. In this report, we present the design of our tool, including its capabilities and limitations, and demonstrate its application on the simulation's cache contents and cache misses.