Memory snapshot post-processing extracts optimization classes, instances, and references from the raw data and performs calculations on the raw data to produce data for analysis.
Post-processing trending memory snapshots or selective snapshots requires only a few seconds, because they contain much less data than leak analysis snapshots. The post-processing of leak analysis snapshots can require a considerable amount of time, memory, and disk I/O, depending on the number of instances and references in your application. To prevent the purging of PurePaths from AppMon Server memory, the AppMon Memory Analysis Server is used for post-processing of leak analysis snapshots. In a production environment it is mandatory to have a Memory Analysis Server installed and configured. (see Set up a Memory Analysis Server)
Post-processing a leak analysis snapshot consists of the following steps:
- Transfer the raw data of the Snapshot from the AppMon Server to the Memory Analysis Server.
- Extract the optimization classes, instances and references from the raw data and write them into separate files for optimized access.
- Calculate the Keep Alive Graph, which is the base data for calculating the garbage collection size of each instance as well as for all other Keep Alive analysis functionality.
- Calculate the garbage collection size for every instance contained in the snapshot.
- Calculate the garbage collection size for classes. This is the sum of the garbage collection size for every instance of the class, with shared children taken into consideration. See also Total Memory dashlet.
- Calculate the HotSpots.
- If string capturing is enabled, calculate string duplicates.
- Persist the resulting data to disk,
- Transfer the post-processed Snapshot back from the Memory Analysis Server to the AppMon Server.
AppMon usually requires approximately 75% of the amount of heap of the application from which the snapshot is taken to run with optimum speed. Because the size of the heap depends on the number of instances and references in a snapshot, the required percentage may be higher. While a leak analysis snapshot is being post-processed, the progress dialog box displays the percentage of cache in use. This value should always be greater than 90%.