Eclipse is probably best known as a Java IDE, but it is more: it is an IDE framework, a tools framework, an open source project, a community, an eco-system, and a foundation.https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-200x200.png
Get an overview of the heap dump: Size and total number of objects at the top, then a pie
chart with the biggest objects and links to continue the analysis.
The histogram lists the objects grouped by their class. The Memory Analyzer can approximate
the retained size very quickly. This is a good indicator where to continue with the analysis.
The Dominator Tree lists the biggest objects. One could call it a
"Keep-Alive Tree" because the next level shows those objects which are immediately prevented
from being garbage collected. Right-click to drill down: view the outgoing and incoming
reference or view the path to the GC roots to see the reference chain which keeps the
Path to GC Roots
The path to the GC Roots shows the reference chain which prevents that the object
is garbage collected. Objects decorated with a yellow dot are Garbage Collection (GC) Roots,
i.e. objects which are assumed to be alive. Usually GC Roots are objects that are currently
on the call stack of a thread or system classes.
Dominator Tree Grouped by Class Loader
Any decent architectures loads components by different class loaders. Many views
of the Memory Analyzer allow you to group the objects by class loader and, hence, easily
analyze memory by component. To map the class loader to a meaningful component name
(for example the plug-in id), one can plug-in name resolver.