Please see the key concepts of the heap walker for an explanation of retained size.
Not all dominated objects are directly referenced by their dominators. For example, consider the references in the following figure:
Object A dominates objects B1 and B2, it does not have a direct reference to object C. Both B1 and B2 reference C. Neither B1 nor B2 dominates C, but A does. In this case, B1, B2 and C are listed as direct children of A in the dominator tree, and C will not be listed a child of B1 and B2. For B1 and B2, the field names in A by which they are held are displayed. For C, [transitive reference] is displayed on the reference node.
At the left side of each reference node in this tree, a percentage bar shows how many percent of the retained size of the top-level object heap are still retained by the target object. The numbers will decrease as you drill down further into the tree. In the view settings, you can change the percentage base to the total heap size.
The dominator tree has a built-in cutoff that eliminates all objects that have a retained size that
is lower than 0.5% of the retained size of the parent object. This is to avoid excessively long lists of small dominated objects
that distract from the important objects. If such a cutoff has been performed, a
cutoff child node will be shown that notifies you about
the number of objects that are not shown on this level, their total retained size and the maximum retained size
of the single objects.
Each rectangle represents a dominated object. The area of the rectangle is proportional to its retained size. In contrast to the tree, the tree map gives you a flattened perspective of all leafs in the dominator tree. If you're mostly interested in big arrays, you can use the tree map in order to find them quickly without having to dig into the branches of the tree. Also, the tree map gives you an overall impression of the relative importance of dominated objects and the object size distribution in the heap.
At the bottom right of the tree map you can see the total percentage of the entire heap that is represented by the tree map. If you have not zoomed in, the remaining part of the heap is dominated by objects that have not made it into the list of biggest objects due to the internal threshold for retained sizes.
The actual information for tree map nodes is displayed in tool tips that are immediately shown when you hover over the tree map. It corresponds to the information that is shown in the tree view mode. If a tree map rectangle exceeds a certain size, its name is printed directly in the tree map.The tree map is shown up to a maximum nesting depth of 25 levels. The depth of the call stack of a particular leaf in the tree map is encoded in its color. The color scale blends blue into yellow, where blue indicates a smaller and yellow a larger depth. The scale is always relative to all currently displayed nodes. For example, if you zoom into a particular area of the tree map, the scale will be re-adjusted so that that the depth of the parent node corresponds to blue. Below the tree map, a legend presents all possible colors as well as the displayed maximum and minimum depths.
Double-clicking on any colored rectangle in the tree map will zoom to the parent node unless the node is
already a top-level node. There are tool bar actions for for
zooming in and
zooming out, as well as as context actions for
showing the actual root of the dominator tree of the biggest objects.
In order to explore the hierarchical environment of a particular leaf in the tree map, there is a context action "Show In Tree", that switches to the tree view mode and selects the same node there.
A new object set will be created that contains only the instances of the selected objects. After your selection, the view helper dialog will assist you in choosing the appropriate view for the new object set.