JavaOne Online Technical Sessions

Automated Heap Dump Analysis for Developers, Testers, and Support Employees

Presenter: Andreas Buchen, SAP AG; Krum Tsvetkov, SAP AG

Although there are many factors that can affect the quality of service an application can deliver, few can have as severe a negative impact as poor memory utilization. Analyzing memory-related problems such as memory leaks or a high memory footprint has proven to be very time-consuming and difficult. It usually requires not only familiarity with and expertise in the code being analyzed but also previous experience in troubleshooting such problems. Tools have to be adapted to accommodate the diverse experience and demands of the people confronted with memory problems in the different phases of the software lifecycle: development, testing, and maintenance. Fortunately, this need is addressed by a memory analyzer tool recently contributed to the open-source community by SAP.

A deeper analysis of the topic reveals the various skill sets and requirements of people involved in troubleshooting memory issues. As a basis, the innovative analysis features of the memory analyzer tool from SAP were improved and extended. On top of them, a system was developed that performs automatic memory analysis and generates custom-tailored reports based on HPROF binary heap dumps. It provides predefined reports for the primary users for which the tool is intended--developers, testers, and technical support staff--and built-in extensibility features that enable users to generate reports that fit even better with their specific needs.

This session describes the process of memory analysis--the requirements, usual manual activities, and challenges--specific to each phase of the software lifecycle. It presents a robust yet easy-to-use tool that automates and significantly simplifies the analysis. When used in the development phase, the tool provides useful hints to developers, such as which their most expensive data structures are and where common memory antipatterns are found in the code. In the testing phase, it enables the tester to verify whether code changes introduce regression or lead to improvement of the memory footprint of a component. And in the maintenance phase, it automatically detects suspected problem areas and reports responsible components, enables searching for recurring problems, and extracts all necessary information from the heap dump to enable faster troubleshooting of the problem.

The session includes a live demo that shows an example of the process of memory issue handling in the maintenance stage. Part of the demo looks behind the scenes of the generated report, examining the techniques used to automatically spot a suspected leak or an overly expensive processing request and to extract and report all relevant details.

Watch The Session
You need to be a registered Sun Developer Network member to view this multimedia session. If you are a registered SDN member, please click on "Watch Multimedia" button to log-in to view the multimedia session.

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
Java 8 banner (182)