What is dotMemory?
dotMemory is a memory profiling tool that allows you to analyze memory usage of any .NET-based application. This includes standalone applications (for example, written in C# or VB.NET), ASP.NET web applications, arbitrary .NET processes, and others.
For the information about dotMemory system requirements, refer to this page.
How Does It Work?
dotMemory collects memory usage data of a running .NET process. The data is then presented to you in a number of views which provide different perspectives on objects in memory.
Why Do I Need It?
dotMemory allows you to answer a large number of questions related to the memory usage of your app:
- Why is this object still in memory (what causes the memory leak)?
- What takes so much memory?
- How does garbage collection affect the performance of an application (e.g. high memory traffic)?
- Are there any memory allocation/distribution patterns violated?
Nevertheless, emergency cases (when you already have memory issues) is not the only reason for memory profiling. dotMemory is a great tool for a daily base use as well. For example, run dotMemory after applying changes to the code or introducing a new algorithm. dotMemory will immediately show you how the things are going - is it getting better or worse. Making the usage of dotMemory one of your obligatory routines will help you to improve your code on-the-fly.