Memory profiling of .NET code
The goal of memory profiling is to find the cause of memory and performance issues in an application. It can give answers to questions like "What functions allocate so much memory?", "Why is this object still in memory (a memory leak)?", "How does garbage collection affect performance," and more.
JetBrains Rider integrates with the dotMemory profiler to provide memory profiling of .NET applications. You can use the profiler via the dotMemory Profiler tool window.
Limitations
It's not possible to get and analyze memory snapshots. You can use the profiler only to analyze memory allocation.
Installation and licensing
dotTrace and dotMemory are provided as a single bundled plugin for JetBrains Rider, which is added and enabled automatically during the IDE installation. If you want to disable the plugin, open the Plugins page of the IDE settings Ctrl+Alt+S, switch to the Installed tab and clear the checkbox next to dotTrace and dotMemory.
Note that the dotTrace and dotMemory plugin is available in Rider only for the owners of dotUltimate or All Products Pack subscriptions.
Supported operating systems and frameworks
OS: Windows, Linux, macOS.
Frameworks:
.NET Framework 1.0 – 4.8 (Windows only).
.NET Core 1.0 – 3.1, .NET 5 – 7.
The profiler is able to attach only to native, .NET Framework 4.0+, .NET Core 3.0+, and .NET 5+ processes.
What can you profile with dotMemory in Rider
Currently, you can use dotMemory in Rider only to analyze memory allocation including the allocation call tree, the list of allocated objects, and other data.