Not all memory leaks are the same. Some eat away at memory slowly over time. Others grab huge chunks of memory all at once. Some memory leaks are caused by the creation of too many objects, others by the way that classes are loaded. What is common for most of them is that they ultimately cause the Java virtual machine's heap to run out of space. A large variety of tools provide a high-level view of a Java application's memory usage, but not all of them are appropriate for doing the detailed analysis needed to find the cause of a memory leak. Depending on the type of memory leak, some tools are more appropriate than others. This session examines some of the tools and techniques available, and uses example memory leaks from real-world Java applications.

The presentation is here.