• Corpus ID: 14596109

Introspection of a Java™ virtual machine under simulation

  title={Introspection of a Java{\texttrademark} virtual machine under simulation},
  author={Greg Wright and Phil McGachey and Erika Gunadi and Mario Wolczko},
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… 

Figures and Tables from this paper

Maxine: An approachable virtual machine for, and in, java
The Maxine VM, a metacircular Java VM implementation, has aggressively used these features since its inception and a co-designed companion tool, the Maxine Inspector, offers integrated debugging and visualization of all aspects of the VM's runtime state.
MaxSim: A simulation platform for managed applications
MaxSim is able to simulate fast and accurately managed workloads running on top of Maxine VM and its capabilities are showcased with novel simulation techniques for low-intrusive microarchitectural profiling via pointer tagging on the x86-64 platforms, and modeling of hardware extensions related, but not limited to, tagged pointers.
System-wide profiling and optimization with virtual machines
A framework is prototyped and case studies showed that the information provided by the tools are useful for software optimization and system design for Android smartphones and multiple sets of the performance and energy models can be selectively used to verify if the speed of the simulated system impacts the software behavior.
SimSight: A Virtual Machine Based Dynamic Call-Graph Generator
SimSight, a framework to capture dynamic call graphs in Simics, which is a widely adopted commercial full-system simulator, is proposed to generate dynamic call-graphs of statically and dynamically linked functions in x86/Linux environment.
Performance and power profiling for emulated Android systems
VPA takes advantage of an existing emulator or virtual machine monitor to reduce the complexity of building a simulator and allows the user to selectively and incrementally integrate timing models and power models into the emulator with carefully designed performance/power monitors, tracing facility, and profiling tools to evaluate and analyze the emulated system.
Integrating Different Types of Models into a Complete Virtual System The
—Virtual platforms construction will typically involve combining component models from many different sources, with models written using different tools, languages, and runtime systems. To enable the
Full-System Simulation from Embedded to High-Performance Systems
This chapter describes use cases for and benefits of full-system simulation, based on more than a decade of commercial use of the Simics simulator. Simics has been used to simulate a wide range of
Live Introspection of Target-Agnostic JIT in Simulation
A debugging system is described wherein an outer Smalltalk running on a real machine interacts with a GEM5 simulation of an inner Smalltalk to understand the behavior of a target-agnostic JIT prototype.


Using complete system simulation to characterize SPECjvm98 benchmarks
The Java code is see to limit exploitable parallelism and aggressive instruction issue is seen to be less efficient for SPECjvm98 benchmarks in comparison to SPEC95 programs.
Analysis of Virtual Machine Stack Frame Usage by Java Methods
Dynamic measurements of parameter size, parameter and return types, temporary variable size and operand stack size were made for every method call during the execution of both program and API (Application Programming Interface) methods for the test suite studied.
The HotSpot Serviceability Agent: An Out-of-Process High-Level Debugger for a JavaTM Virtual Machine
  • K. Russell, Lars Bak
  • Computer Science
    Java Virtual Machine Research and Technology Symposium
  • 2001
The design and implementation of the HotSpotTM Serviceability Agent is described, comparing it to other debugging systems for both statically compiled and dynamic languages, and future directions for this architecture are illustrated.
Java Runtime Systems: Characterization and Architectural Implications
The architectural issues explored in this study show that, when Java applications are executed with a JIT compiler, selective translation using good heuristics can improve performance, but the saving is only 10-15 percent at best, and reveals revealing insights and architectural proposals for designing an efficient Java runtime system.
Characterizing the memory behavior of Java workloads: a structured view and opportunities for optimizations
It is found that co-allocation of frequently used method tables can reduce the number of TLB misses and lower the cost of accessing type information block entries in virtual method calls and runtime type checking.
The hotspot TM serviceability agent: an out-of-process high level debugger for a Java TM virtual machine
The design and implementation of the HotSpotTM Serviceability Agent is described, comparing it to other debugging systems for both statically compiled and dynamic languages, and future directions for this architecture are illustrated.
Memory system behavior of Java programs: methodology and analysis
This paper studies the memory system behavior of Java programs by analyzing memory reference traces of several SPECjvm98 applications running with a Just-In-Time (JIT) compiler and finds that the overall cache miss ratio is increased due to garbage collection, which suffers from higher cache misses compared to the application.
Exploring processor design options for Java-based middleware
A detailed characterization of two popular Java server benchmarks, ECperf and SPECjbb2000, and combines findings on available ILP in Java middleware with results from previous papers that characterize the availibility of TLP to investigate the optimal balance between ILP and TLP in CMPs.
Vertical profiling: understanding the behavior of object-priented applications
By incorporating vertical profiling into a programming environment, the programmer will be able to understand how their program interacts with the underlying abstraction levels, such as application server, VM, operating system, and hardware.
Simics: A Full System Simulation Platform
Simics is a platform for full system simulation that can run actual firmware and completely unmodified kernel and driver code, and it provides both functional accuracy for running commercial workloads and sufficient timing accuracy to interface to detailed hardware models.