GC.Collect() not cleaning memory, how to find out what references to lots of memory still exist? When all my processign is done i set everything to null and then: GC.Collect(); and then GC.WaitForPendingFinalizers(); but it still shows that my process takes 400 MB of memory. Is there any easy way to see what references that I forgot to set to null so that the memory cleas up on GC.Collect() ?