The instance retention graph shows chains of references between GC roots and your selected object.

Start at your selected object and follow the chains of references up towards the GC roots, to identify references that are preventing the garbage collector from collecting your object.

When you find a reference that shouldn't be there, modify your code to break the reference, and then profile the application again to check the problem is fixed.

Key

 

The instance you selected.

GC root object.

The object under this one in the graph is a GC root because it is a GC Handle.

The object under this one in the graph is a GC root because it is on the stack, having been put on the stack by bz.d().

The object under this one in the graph is a GC root because it is a member of the static variable Connection.s_NullBuffer.

Group of strongly-connected objects
(see tips below).

Non-disposable instance for which you have source code.

Non-disposable instance for which you do not have source code.

Disposable instance for which you have source code.

Disposable instance for which you do not have source code.

Disposed instance.

The simplest path between these two instances.
(Note that if you break this link, the objects may still be connected by a more complex link.)

Move your mouse pointer over an object to view more information in a tooltip.

Click  on a node in the graph to see the properties of a specific instance.

You can't see the properties of an instance if you selected Make snapshots faster by leaving out object values when setting up the profiling session, or if the snapshot was bigger than 4GB.

Tips