Even though the .NET runtime has a garbage collector, memory leaks are still a reality. A memory leak occurs when an instance that is no longer needed is still, unintentionally, reachable from a root (e.g. a static field).
By using .NET Memory Profiler you can detect memory leaks long before they are noticed in the Task manager and before they create an out-of-memory error. Even a minor memory leak can cause problems in a long-running program.
.NET Memory Profiler will:
Guide you through the process of detecting memory leaks
An interactive profiling guide will give you step by step instructions on how to detect a memory leak. (more...)
Help you identify memory leaks by collecting and comparing snapshots
Snapshots of the memory usage can be collected before and after a user action is performed (e.g. opening and closing a document). Comparing the snapshots will provide information about new instances created by the action. You can then investigate the new instances further to find out whether they are part of a memory leak or not.
Automatically analyze memory usage and highlight potential memory leak issues
The automatic memory analyser will help you locate potential memory leaks, such as left-over EventHandlers. (more...)
Present root paths of new instances that are potential memory leaks
The root paths tell you why the instance has not been garbage collected. This is the most important information you need when finding out how a memory leak occurs.
Give you information about how the instances were created
To understand why an instance is unintentionally kept alive, it is crucial that you know how it was created, and how other instances in the root path was created. .NET Memory Profiler will present the allocation call stack for each instance in the snapshot.
Visualize how an instance is being used
The instance graph will give you the full picture of a how a suspected memory leak instance is being used, how it is related to other instances, and, maybe most importantly, how roots are preventing it from being garbage collected. (more...)