Sun and Oracle Community Voices How to Buy Log In United States [Change] English

Navbar Here$navbar =
$url_id =
$ROOT_ID = 1
$url = /techrep/2006/abstract-159.html

Introspection of a Java Virtual Machine under Simulation

Author(s):
Greg Wright, Mario Wolczko, Phil McGachey and Erika Gunadi
Report Number: Date Published: Available Formats:
TR-2006-159 September 2006 Portable Document Format (PDF)
Request Hard Copy
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.