dotMemory Features

dotMemory is a .NET memory profiler that can be launched right from Visual Studio or as a standalone tool.

dotMemory Home view

Support for various .NET applications

dotMemory lets you profile applications based on .NET Framework (2.0 and higher), such as desktop applications, ASP.NET web applications, IIS, IIS Express, Windows services, Universal Windows Platform applications, arbitrary .NET processes, and more.

Easy and comprehensive UI

While memory profiling has the reputation of being for pros only, dotMemory's unique user interface lowers that entry barrier dramatically and makes memory profiling straightforward. You simply move from top to bottom, from a set of objects down to particular instances, until you identify the real cause of memory issues.

Powerful automatic inspections

dotMemory automatically scans your snapshot for most common types of memory issues. These inspections can be a great starting point in analyzing a snapshot if you don't know where to begin.

Multiple views on data

Examine objects in the heap from multiple views. Want to know how objects relate to each other? What objects do they reference and through what fields? Want to know which calls created these objects? No problem! dotMemory has a view for everything.

Sunburst diagram

Sunburst diagram

Understanding of how memory is retained in your application is essential in order to successfully optimize it. In the sunburst view, the hierarchy of dominators (objects that exclusively retain other objects in memory) is shown on a sunburst chart.

Just a quick look at the chart allows you to find out what objects are crucial for your application and evaluate the largest structures: the more memory a dominator retains, the larger the central angle.

Get snapshots automatically

Take snapshots automatically

Sometimes you may be interested in taking snapshots only when a certain condition is true, and dotMemory allows you to do just that.

This is especially helpful when memory consumption in your application increases substantially, or when taking a snapshot manually gets tricky.

Simply set a particular condition and have snapshots collected automatically as soon as the condition is satisfied.

Comparing memory snapshots

Compare two snapshots taken within one profiling session to find objects that are causing a memory leak. Use the comparison view to find out how many objects were created between snapshots and how many objects were collected.

dotMemory also allows you to compare snapshots taken in different sessions. This, for example, may be useful to find out how particular changes in code affect your application's memory usage.

Analyzing memory traffic

Analyzing memory traffic

Excessive allocations and garbage collections may imply significant memory management overhead. Use the traffic view to understand what objects are created/collected most intensively in your application and what functions are causing this memory traffic.

Run dotMemory from Visual Studio

Visual Studio integration

dotMemory integrates with Visual Studio so you can start a memory profiling session right from the IDE, whenever you need.

Later on, you can navigate from a type in a dotMemory object set to the type's declaration in Visual Studio.

Run profiling on a remote computer

Remote profiling

Profile applications not only on your local computer but on any computer in your network or on the Internet. Remote profiling is especially helpful when you need to profile a web application on a production server.

Using dotMemory profiling API

Profiling API

Taking the right moment for getting a snapshot is very important for memory analysis. Use the dotMemory API calls to take snapshots at the exact places of your code.

Download dotMemory
Free trial for 5 days of actual use