JAllocRate

JAllocRate is a memory profiler for Java virtual machines supporting the JVM Profiler Interface (JVMPI) v1.2. That means you'll probably need a 1.4.2-era JVM (or later).

Many memory profilers exist for Java 1.4 and 1.5; however, JAllocRate has been designed in particular to measure not just the amount of allocation of a program, but the allocation rate of a program. This is critical in many contexts, particularly in garbage collector design, analysis, and configuration. Notably, real-time garbage collectors such as IBM's Metronome require a bound on a program's allocation rate to guarantee real-time performance.

JAllocRate is highly configurable, supporting user specification of the window size for the rate calculation. It compiles detailed allocation statistics and will even graph (with the aid of a graphing program like gnuplot) the allocation rate of a program over time.

Background

JAllocRate was implemented in an attempt to verify a static approach to bounding allocation rate and measure the technique's overestimation. However, JAllocRate is useful beyond just validating this research. It has value to real-time application developers using real-time garbage collectors in getting a truer picture of their application's memory requirements (and therefore the requirements of the garbage collector). And it has value also to non-real-time developers concerned with garbage collector efficiency or just curious about the systemic behavior of their program.

Further Reading

Details about the static approach to bounding allocation rate are available in this article:

Tobias Mann, Morgan Deters, Rob LeGrand, and Ron K. Cytron. Static Determination of Allocation Rates to Support Real-Time Garbage Collection. In Proceedings of the ACM conference on Languages, Compilers, and Tools for Embedded Systems (LCTES) 2005.

More information about IBM's real-time garbage collector, the Metronome, is available in this article:

David F. Bacon, Perry Cheng, and V. T. Rajan. A Real-time Garbage Collector with Low Overhead and Consistent Utilization. In Proceedings of the ACM symposium on the Principles of Programming Languages (POPL) 2003.

Obtaining JAllocRate

We have not yet released JAllocRate but plan to do so soon. At present, our development version works pretty well and its options are documented. Check out our Subversion repository, hosted by SourceForge.net, for the latest sources. The development version of JAllocRate has been tested under Sun's JVM version 1.5.0 on Linux/x86. It should work with any JVMPI 1.2-compliant virtual machine, including Sun's version 1.4.2 and those of other vendors. It should work (with perhaps some minor modifications) under cygwin on a Windows platform.

Last modified Saturday, 15-Jul-2006 18:49:08 UTC / xhtml1 / css2