There are many options to troubleshoot memory leak issues in .NET applications. Most common approach is capturing a memory dump just before terminating the process and looking at the object count and gcroots. Most of the time this approach works, but in few cases where the application has too many short lived and too many long lived objects, it is hard to determine which objects are leaking and which objects are cached.
Another common approach is capturing multiple snapshots at the same location of the application after executing the application functionality that causes memory leaks. Comparing these snapshots, we can easy tell which object count is increasing and we can do gcroots on only those objects.
In this blog post, I would like to show how NP .NET Profiler can collect multiple snapshots and generate different reports to determine which object count is increasing.
Click the image for a larger view