|
The overhead options are:
-
Remove unreferenced and weakly referenced objects
If this option is checked, JProfiler will remove all objects from the
heap that are not strongly referenced. These include:
- unreferenced objects that are eligible for garbage collection
- objects that are referenced only through soft, weak and phantom references
-
objects that are in the finalizer queue and will be garbage collected
as soon as the finalizers have been run
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.
-
Calculate retained sizes
Calculating retained sizes adds memory overhead while the heap snapshot is processed and take some time
for large heap snapshots. If you experience memory problems when taking heap snapshot or if you want the heap
snapshot processing to take less time, you can deselect this option. In that case, no retained sizes will be available.
Also, the biggest objects view will not be available.
Retained sizes can only be calculated if the "Remove unreferenced and weakly referenced objects" is selected.
-
Record primitive data
Note: This option is only visible when you profile with Java
<= 1.4.2 (JVMPI) or with Java 1.6+ (JVMTI 1.1). With Java >= 1.5 (JVMTI 1.0), primitive data is not recorded.
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.
|