Este problema generalmente surge por problemas de performance en la aplicación, por lo que si metemos un profiler la performance se vera todavía mas afectada.
Afortunadamente se pueden tomar snapshots de la ejecución de una aplicación java a partir de Java 5 update 7 y de Java 1.4.2_12, estos snapshots pueden ser analizados con algunas herramientas que permiten obtener información bastante interesante como esta corriendo la aplicación y recursos que se están utilizando.
Blog que discute el tema de HEAP DUMP en Java
Herramientas para analizar HEAP DUMPS