Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
VM '04 Paper    [VM '04 Technical Program]

Using Hardware Performance Monitors
to Understand the Behavior of Java Applications

Peter F. Sweeney1 Matthias Hauswirth21
Brendon Cahoon1 Perry Cheng1 Amer Diwan2 David Grove1 Michael Hind1
1IBM Thomas J. Watson Research Center
2University of Colorado at Boulder

Abstract

Modern Java programs, such as middleware and application servers, include many complex software components. Improving the performance of these Java applications requires a better understanding of the interactions between the application, virtual machine, operating system, and architecture. Hardware performance monitors, which are available on most modern processors, provide facilities to obtain detailed performance measurements of long-running applications in real time. However, interpreting the data collected using hardware performance monitors is difficult because of the low-level nature of the data.

We have developed a system, consisting of two components, to alleviate the difficulty of interpreting results obtained using hardware performance monitors. The first component is an enhanced VM that generates traces of hardware performance monitor values while executing Java programs. This enhanced VM generates a separate trace for each Java thread and CPU combination and thus provides accurate results in a multithreaded and multiprocessor environment. The second component is a tool that allows users to interactively explore the traces using a graphical interface. We implemented our tools in the context of Jikes RVM, an open source Java VM, and evaluated it on a POWER4 multiprocessor. We demonstrate that our system is effective in uncovering as yet unknown performance characteristics and is a first step in exploring the reasons behind observed behavior of a Java program.

  • Introduction
  • Background
  • VM Extensions
  • Visualization Tool
  • Experiments
  • Related Work
  • Future Work
  • Conclusions
  • Acknowledgments
  • References
  • Footnotes


  • This paper was originally published in the Proceedings of the 3rd Virtual Machine Research and Technology Symposium,
    May 6-7, 2004, San Jose, CA, USA

    Last changed: 29 Aprl 2004 aw
    VM '04 Technical Program
    VM '04 Home
    USENIX home