Phase-Based Visualization and Analysis of Java Programs
Priya Nagpurkar and Chandra Krintz
Elsevier Science of Computer Programming -- Special Issue on
Priciples Practices and Programming in Java,
Vol. 59, Number 1-2, January, 2006, pp. 64-81.
PDF
Abstract
Extant Java Virtual Machines (JVMs) apply dynamic compiler optimizations
adaptively, based on the partial execution of the program,
with the goal of improving performance. Understanding and
characterizing program behavior is of vital importance to
such systems. Recent research, primarily in the area of computer
architecture, has identified potential optimization opportunities
in the repeating patterns in the time-varying behavior of programs.
As such, we believe that by considering time-varying,
i.e., phase, behavior in Java programs, adaptive JVMs
can enable performance that exceeds current levels.
To enable analysis and visualization of
phase behavior in Java programs and to facilitate optimization
development, we have implemented a freely-available, offline, phase
analysis framework within the IBM Jikes Research Virtual Machine (JikesRVM)
for Java.
The framework couples existing techniques into a unifying
set of tools for data collection, processing, and analysis of
dynamic phase behavior in Java programs. The framework enables
optimization developers to significantly reduce analysis
time and to target adaptive optimization to parts of the
code that will recur with sufficient regularity. We use
the framework to evaluate phase behavior in the SpecJVM
benchmark suite and discuss optimizations that are enabled by
the framework.