For strongly referenced objects, the heap walker will not display soft, weak and phantom references.
This mode is preferable for memory leak detection, and is especially helpful to obtain useful information when showing the path to root for selected objects. Unchecking this option reduce the time for processing the heap snapshot and allows you to analyze the heap "as-is".
<= 1.3 JVMs perform a full garbage collection before the heap snapshot is taken, so unreferenced objects can never occur even if the option is unchecked. With >= 1.4+ JVMs, no garbage collection is performed prior to the snapshot.
Note: With Java >= 1.5.0 (JVMTI), unreferenced objects are not shown by the heap walker. The dynamic memory views like the all objects view and the recorded objects view can therefore show higher instance counts.
Retained sizes can only be calculated if the "Remove unreferenced and weakly referenced objects" is selected.
If this option is checked, the heap walker will record primitive data and display string values in the reference graph as well as strings and values of primitive fields in the data view.
Deselecting this option will save memory and is advisable if you experience memory problems when taking heap snapshot. If primitive data is not recorded, it will be requested on demand in a live session, depending on whether the object still exists. The data may not be the same as at the time of the heap snapshot in that case. These on-demand requests only work for Java 1.5+, for Java 1.4 and lower, the data view will display N/A for primitive values.