Heap Snapshot Option Dialog


  The heap snapshot options dialog is displayed each time before the actual heap snapshot is taken. The dialog has two tabs, grouping all overhead-related options on the second tab.
  If the Select recorded objects option is checked, the heap walker will restrict the heap snapshot to recorded objects only. In this way you can focus on the objects that have been created during a selected time span. If the option is unchecked, all objects on the heap will be shown (excluding any objects removed by the overhead options below). Note that the  mark heap dump action provides a way to select newly allocated instances since a particular point in time that has much lower overhead than allocation recording.

By default, JProfiler performs a full GC in the heap dump. You can select the weak reference types that should cause objects to be retained in the heap dump. By default, soft references will retain objects in the heap dump. If you deselect the "Perform a full GC in heap dump" setting, the heap dump may contain unreferenced objects that have no path to a GC root.

  The overhead options are:
  • Calculate retained sizes
    Calculating retained sizes adds memory overhead while the heap snapshot is processed and can 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 "Perform a full GC in heap dump" check box is selected.

  • Record primitive data
    Note: This option is only visible when you profile 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 and values of primitive fields in the reference views.

    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.