previous      content      next
Reachability scopes

"Reachability scopes" shows objects distributed according to their reachability scope, i.e. on how/whether they are reachable from GC roots:

  • Strong reachable: objects reachable from GC roots via at least one strong reference, or being GC roots themselves. Such objects will not be garbage collected until all strong references to them are nulled and/or they remain GC roots. Thus, memory leaks should be searched among them.
  • Weak/soft reachable: objects reachable from GC roots via weak and/or soft references only. Such objects can be deleted by garbage collector when it decides to free some memory. Such objects are not memory leaks, but they may deserve attention when you analyse memory consumption.
  • Dead objects: unreachable from GC roots, but not yet collected. Once garbage collector decides to delete them, they will be deleted. Objects of classes overriding Object.finalize() will be placed to the finalizer queue before actual deletion.
  • Objects pending finalization: objects in the finalizer queue.

In addition to the "Reachability scopes" view, objects view header shows brief summary on the number of strong reachable objects, and if there are any, provides an easy way to open them in new tab, by clicking corresponding link (useful when analysing memory leaks):

Action "Memory | Instances by Class... (Ctrl+N)" allows to choose reachability scope of objects to open:

The reachability scope for individual objects is shown in reference explorers and paths views:

previous      content      next