Total Memory Content dashlet

The Total Memory Content dashlet shows classes and instances (Leak Analysis snapshot) in a Memory snapshot. It shows which classes are instantiated most often and which classes require the most memory.

Total Memory Content dashlet
Total Memory Content dashlet

The Total Memory Content dashlet and the drilldown dashlets use the following icons to illustrate class types:

Normal classes
Collection classes
Map classes
Arrays

The following icons are used for Instances:

Normal Instances
Collection Instances
Map Instances
Array Instances
Unreferenced Instances (garbage)
Special virtual Instances (VM-root and garbage-root)
Hint

Use Ctrl+F to filter the shown classes/instances by name.

For trending dumps, AppMon displays all classes with their instance counts and Shallow Size. Trending snapshots do not contain Instances, so there is no garbage collection size available. Trending snapshots show which classes are instantiated and how often. Trending snapshots have no further drilldowns.

Use the Content toolbar at the top right to filter and show classes that have no instances.

Total memory content for leak analysis snapshots

For Leak Analysis snapshots, this dashlet contains the following columns:

  • Class/Instance: Corresponding class or if a class is expanded, its corresponding instances.
  • Instance Count: Number of instances of a class.
  • GC Size: Garbage collection size of all instances of a class, or the garbage collection size of a single instance.
  • Average GC Size: For classes, the average garbage collection size of its instances. Use the average GC size to identify exceptional outlier instances.
  • Shallow Size: For classes, the sum of the Shallow Size of all instances. For instances, the Shallow Size of the corresponding Instance.
  • Additional Information: Information related to the individual record. This column shows string values for string objects (if string capturing is enabled) and the size for most classes that implement the Collection or Map interfaces (if primitive field value capturing is enabled).

Show instances

To show the instances of a class, click on the arrow symbol left to the class. This shows the first 30 records of the corresponding class, based on the current sorting order. When the sort order changes, a new request that reflects the new sort order refreshes these records. Each current instance of each class has an entry that fetches the next 30 records. To show all instances of a class, use the Show all option in the context menu.

The figure below shows two special classes: <VMRoot> class and <Garbage> class. These are virtual classes and do not exist in the SUD heap. They show the corresponding amount of total memory used and memory that is no longer referenced from any root object. Use the analysis drilldown below on those records. For example, the Keep Alive Set dashlet of the <Garbage> instance, shows the instances that might be garbage-collected.

The GC size column

The most important column for Leak Analysis snapshots is the GC Size column. For classes, it shows the sum of the GC size of all instances of that class. It considers the shared children between the individual instances. For instances, it shows the garbage collection size of the individual instance.

Hint

When you sum up the GC size of all instances of a class, the result may not be the same as that in the GC Size column. Instances may have shared children. These are considered when you calculate the GC class size.

Analysis drilldown

To further investigate the content of a Memory snapshot (show Shortest Root Path - By Keep Alive or Follow References dashlet), use the context menu to open the corresponding dashlets. Each analysis is not available for the classes (Keep Alive Set dashlet).