What′s New in dotMemory

This page guides you through updates in recent dotMemory and dotMemory Unit releases. Highlights include a command-line profiling tool, support for .NET Core applications, and analyzing memory dumps.

Download dotMemory

Free 30-day trial available

Support for musl-based Linux distributions 2022.1

The dotMemory command-line tool now supports Alpine versions 3.13–3.15. The following CPUs and frameworks are supported:

  • x64: .NET Core 3.1, .NET 5.0–6.0.
  • arm64: .NET 5.0–6.0.

Improved Profiling API 2022.1

When getting a snapshot with the help of the profiling API, you can now specify a snapshot name using DotMemory.GetSnapshot("snapshot name");

The name will be shown on the dotMemory Home | Snapshots page.

Attaching to applications with drag and drop 2022.1

You can now attach the profiler to an already running application by simply dragging the special icon onto the application window.

Command-line tool improvement 2022.1

The dotMemory command-line tool now shows its progress when saving a snapshot.

Improved performance of the Similar Retention view 2022.1

The Similar Retention view now processes data much faster.

Support for Apple silicon processors 2021.3

The dotMemory command-line tool now works on computers with Apple silicon processors. You can now use dotMemory CLT to profile .NET 6 applications (native mode) and .NET 5 applications (Rosetta 2 mode).

Performance improvements 2021.3

We completely reworked the algorithm behind the dominators tree (the object retention graph). Even if an object set contains hundreds of millions of objects, it only takes dotMemory a couple of minutes to open a specific view.

Sampled memory allocation data 2021.3

dotMemory can now get sampled data about memory allocation based on ETW events. Compared to the traditional (statistical) way of collecting allocation data, sampling is less accurate but provides a number of advantages:

  • The sampled allocation data is collected without performance penalties.
  • You don’t need to enable this data collection explicitly; it is always active.
  • Sampled allocation data can also be collected when you attach the profiler to an application that is already running.

Note that this feature is available only on Windows.

Subsystems view 2021.3

You can now use the Subsystems view to analyze memory allocation data. A subsystem groups all methods belonging to the same type, namespace, or assembly. The resulting view displays objects created by the subsystems and a merged call tree for each subsystem.

Updates to memory allocation analysis 2021.2

In this release, we have continued to improve the way you analyze memory allocation. Two new tabs have been added to the Memory Allocation view:

  • The Methods tab lets you analyze a plain list of methods that have allocated memory.
  • The Call Tree tab lets you analyze the allocation call tree. Each node in the tree shows not only the called method but also the objects allocated by the call.

Improved filters 2021.2

The search bar at the top of dotMemory views is now more flexible and easier to use:

  • The filters have additional options for narrowing the search scope: #struct (search only in value types), #c (only in types), #m (only in methods), #ns (only in namespaces).
  • You can get help for all filters possible in a given context.

Improved object export 2021.2

It’s now possible to:

  • Specify the traversal depth when exporting object data.
  • Select one or more types and export their data to a single file.
  • Export object data from the Instances, Outgoing References, and Unreachable Objects views.

Console profiler update 2021.2

It’s now possible to use service messages to enable and disable the collection of memory allocation data.

Copy stack trace to clipboard 2021.2

A stack trace copied to the clipboard in dotMemory is now automatically opened in Rider / Visual Studio with ReSharper.

New Home Screen 2021.1

We’ve completely reworked the dotMemory Home screen – it is much easier to configure and start new profiling sessions, work with snapshots, and perform other basic operations.

Support for Linux dumps

Support for Linux dumps 2021.1

Now, you can analyze dumps of .NET Core applications collected on the Linux systems using gcore.

Improved memory allocation analysis

Improved memory allocation analysis 2021.1

Now, dotMemory lets you analyze memory allocation on an arbitrary time interval. Just select the interval on the timeline and the Memory Allocation view will show you the objects allocated on this interval, as well as the stack trace that allocated them.

Download dotMemory

Free 30-day trial available