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.
The Total Memory Content dashlet and the drilldown dashlets use the following icons to illustrate class types:
The following icons are used for Instances:
|Unreferenced Instances (garbage)|
|Special virtual Instances (VM-root and garbage-root)|
Use Ctrl+F to filter the shown classes/instances by name.
Total memory content for trending snapshots
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).
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.
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.
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).