dotMemory 2024.3 Help

Introduction

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 more information about dotMemory system requirements, refer to this page.

How it works and when you might need this

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.

dotMemory allows you to answer many questions related to the memory usage of your app:

  • Why is this object still in memory (what causes a memory leak)?

  • What takes so much memory?

  • How does garbage collection affect application performance (for example, high-memory traffic)?

  • Are there any memory allocation/distribution patterns violated?

Nevertheless, emergency cases (when you already have memory issues) are only one of the reasons for memory profiling. dotMemory is an excellent tool for daily basis use as well. For example, run dotMemory after applying changes to the code or introducing a new algorithm. dotMemory will immediately show you how things are going – is it getting better or worse? Using dotMemory as one of your obligatory routines will help you improve your code on-the-fly.

dotMemory versions

dotMemory is available in the following versions:

  • dotMemory standalone application for Windows, macOS, and Linux. Note that the versions for Linux and macOS have several limitations that are noted in the documentation.

  • dotMemory integrated in JetBrains Rider for Windows, macOS, and Linux. More details on the integration and its limitations are available in the Rider documentation.

  • dotMemory command-line tool for Windows, macOS, and Linux. For more information, refer to this page.

Supported CPU architectures

CPU

Standalone

Command-line tool

Profiler in JetBrains Rider

x86, x64

  • Windows: x64 only

  • Linux: x64 only. Only Alpine 3.13–3.15 is supported

  • macOS: x64

See details

  • Windows: x86 and x64

  • Linux (glibc and musl-based): x64 only

  • macOS: x64

Windows, Linux, macOS: x64 only

ARM

  • Windows: arm64 only. Windows 11: .NET 5.0–7.0 only

  • Linux (glibc-based only): arm64 only

  • macOS: arm64 (Apple Silicon). macOS 12 Monterey and later: .NET 6.0–7.0 only

  • Windows: arm64 only

  • Linux (musl-based): arm64 only

  • Linux (glibc-based): arm32 and arm64. GLIBC_2.23 or later

  • macOS: arm64 (Apple Silicon). macOS 12 Monterey and later: .NET 6.0–7.0 only

Windows, Linux, macOS: arm64 only

Supported frameworks for x86 and x64 CPUs

Windows

macOS | Linux

.NET Framework 1.0 – 4.8

Supported

Available in: standalone, console tool, Visual Studio, JetBrains Rider

Notes:

  • You can attach only to .NET Framework 4.0 or later processes.

Not available

.NET Core 1.0 – 3.1

.NET 5 – 7

Supported

Available in: standalone, console tool, Visual Studio, JetBrains Rider

Notes:

  • You can attach only to .NET Core 3.0 or later processes.

Supported

Available in: standalone, console tool, JetBrains Rider

Notes:

  • Attaching to running .NET Core processes is possible:

    • On Linux: only for .NET Core 3.0 or later, .NET 5 or later.

    • On macOS: only for .NET 5 or later.

Snapshot compatibility

Save in version

Open in version

2018.1 – 2019.1

2019.2 – 2019.3

2020.1 – 2024.3

2018.1 – 2019.1

+

-

-

2019.2 – 2019.3

-

+

-

2020.1 – 2024.3

-

-

+

Last modified: 13 August 2024