Java heap analysis tools

HP JVM specific tools

The following URL gives some tools and tips specific to OOM situations with HP JVM: HP JVM tools/tips

JRockit-specific:

JRockit supports JRA recording (Java Runtime Analyzer). This is useful to gather information at JVM run time which will give information about the application, for example, the number of GCs running, number of soft/weak/phantom references, hot methods, etc. It is useful to make a recording for a few minutes and analyze the data if the JVM has performance problems or hang problems. More details on this can be found in Jrockit docs HERE

To troubleshoot memory leak problems, we recommend taking a flight recorder recording and check the heap usage after each old collection. A continuously rising memory usage could indicate a memory leak. For information about creating and interpreting a Flight Recorder recording, see the Oracle JRockit Flight Recorder Run Time Guide.

Java VisualVM

Java VisualVM is a tool that provides a visual interface for viewing detailed information about Java applications while they are running on a Java Virtual Machine (JVM), and for troubleshooting and profiling these applications. Various optional tools, including Java VisualVM, are provided with Sun’s distribution of the Java Development Kit (JDK) for retrieving different types of data about running JVM software instances. For example, most of the previously standalone tools JConsole, jstat, jinfo, jstack, and jmap are part of Java VisualVM. Java VisualVM federates these tools to obtain data from the JVM software, then re-organizes and presents the information graphically, to enable you to view different data about multiple Java applications uniformly, whether they are running locally or on remote machines. Furthermore, developers can extend Java VisualVM to add new functionality by creating and posting plug-ins to the tool’s built-in update center.

Java VisualVM can be used by Java application developers to troubleshoot applications and to monitor and improve the applications’ performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, browse the platform’s MBeans and perform operations on those MBeans, perform and monitor garbage collection, and perform lightweight memory and CPU profiling.

Java VisualVM was first bundled with the the Java platform, Standard Edition (Java SE) in JDK version 6, update 7.

JRockit Memory Leak Detector

The JRockit Memory Leak Detector is a tool for discovering and finding the cause for memory leaks in a Java application. The JRockit Memory Leak Detector’s trend analyzer discovers slow leaks, it shows detailed heap statistics (including referring types and instances to leaking objects), allocation sites, and it provides a quick drill down to the cause of the memory leak. The Memory Leak Detector uses advanced graphical presentation techniques to make it easier to navigate and understand the sometimes complex information. See Getting Started with Memory Leak Detection for more details.

Eclipse Memory Analysis Tool (MAT)

The stand-alone Memory Analysis Tool (MAT) is based on Eclipse RCP. It is useful if you do not want to install a full-fledged IDE on the system you are running the heap analysis. More details on this can be found in MAT home page at MAT