Heap Walker - Data View

   


  The heap walker data view conforms to the basic layout of all heap walker views. Also see the help on key concepts for the entire heap walker. The heap walker instance data view shows the instance data and the class data of all instances of classes and arrays which are contained in the current object set.
  There is always one instance visible at a time whose class name or array type is given above the field table. Above the upper right corner of the table, navigation controls allow to move back and forth through all the instances or arrays in the current object set.

The instance navigation is linked among the following views of the heap walker:

This allows you to easily switch back and forth between these views while keeping the focus on the same object.

  The order of the instances in the object set can be adjusted to
  • unsorted
    The objects are in a random order. This is the default setting.
  • sorted by shallow size
    Objects with a larger shallow size are displayed first.
  • sorted by deep size
    Objects with a larger deep size are displayed first.
  • sorted by exclusive deep size
    Objects with a larger exclusive deep size are displayed first.
  • sorted by allocation time (oldest first)
    Objects with a greater age are displayed first. The "Record object allocation times" feature has to be activated on the "Memory Profiling" tab of the profiling settings dialog, otherwise this sort mode is not available and a warning message is displayed. This sorting only works for recorded objects. Unrecorded objects are appended to the end of the sorted set.
  • sorted by allocation time (newest first)
    Like the above sort mode, only that objects with a smaller age are displayed first.

Please see the key concepts of the heap walker for an explanation of the different size types.

Sorting can take a few seconds, depending on the size of the heap. The exclusive deep size sort mode is the computationally most expensive one. A progress dialog is shown while the objects are sorted. If the operation takes longer than the configured timeout, the operation will return with a report about the amount of work done. In that case, there will be a partial sorting.

After changing the sort order, the displayed index is set to one.

  The data view of the heap walker offers two or more view modes that can be changed in the combo box at the top of the view:
  • Instance data
    Shows the instance data for the current instance. This is the default view mode when you switch to the data view or after you use the instance navigation (see above) except when the current instance is an object of class java.lang.Class. In that case, the instance data view mode is not available.
  • Class data
    Shows the class data of the class or a particular super class of the current instance. There is one such view mode for each class in the class hierarchy. When the current instance is an object of class java.lang.Class, there are no super classes displayed.
  Above the main view, the the following additional information is displayed:

Please see the key concepts of the heap walker for an explanation of the different size types.

  To be able to select multiple objects from the current object set and create a new object set from them, you can flag each instance with the checkbox at the top right corner of the data view. The  menu button to the right of the checkbox allows you to
  • clear all flags
  • flag all instances up to the currently displayed instance

The [Use ...] button above the table shows a popup where you can select all flagged as well as all unflagged instances (see below).

  To add a selection step from this view you can
  • select an entry from the table that is either a java.lang.String object or if it has a [reference] value and click the [Use ...] button above the table and choose this instance from the popup menu. Alternatively, you can double click on the entry. An object set will be created that contains only the selected object.
  • activate the instance data view mode (see above) and click the [Use ...] button above the table and choose this instance from the popup menu. An object set will be created that contains only the currently displayed instance.
  • activate the class data view mode (see above) and click the [Use ...] button above the table and choose this class from the popup menu. An object set will be created that contains only the java.lang.Class object of the currently displayed class. In this way you can go from any instance to its class or one of its super classes. This is useful if you have multiple classes with the same name from different classloaders and cannot use the class selection in the classes view of the heap walker that groups classes with the same name. If you subsequently want to select all instances of that class, you can go to the references graph, show the incoming references and make a selection step with the green node named "live instances".
  • click the [Use ...] button above the table and choose flagged instance or unflagged instance from the popup menu. An object set will be created that contains only the flagged or unflagged instances.

After your selection, the view helper dialog will assist you in choosing the appropriate view for the new object set.