JetBrains Rider 2024.1 Help

Performance profiling of .NET code

The goal of performance profiling is to find the cause of performance issues in an application. This includes, for example, a straightforward "what is the slowest method?" analysis, as well as more complicated analysis of performance bottlenecks related to CPU starvation, blocking garbage collection, disk I/O, and other issues.

JetBrains Rider integrates with the dotTrace profiler to provide performance profiling of .NET applications. You can use the profiler via the dotTrace Profiler tool window.

Limitations

Note that not all dotTrace features are yet available in JetBrains Rider. Thus, the integrated profiler provides only two views for analyzing snapshots: Call Tree and Top Methods. To get the entire feature set, you should open profiling snapshots in the standalone version of dotTrace.

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 CPU architectures

CPU

Standalone

Command-line tool

Profiler in JetBrains Rider

x86, x64

  • Windows: x86 and x64

  • 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: arm32 and arm64. 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

Native

Supported

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

Supported profiling types: Timeline.

Not available

.NET Framework 1.0 – 4.8

Supported

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

Supported profiling types: Timeline, Sampling, Tracing, Line-by-Line.

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: JetBrains Rider, Visual Studio, standalone, console tool

Supported profiling types: Timeline, Sampling, Tracing, Line-by-Line.

Notes:

  • You can attach only to .NET Core 3.x or .NET 5+ processes.

Supported

Available in: JetBrains Rider, standalone, console tool

Supported profiling types: Timeline, Sampling, Tracing.

Notes:

  • Because of some limitations of .NET Core, there may be some issues with profiling projects that target .NET Core 3.0 or earlier. In some cases, the profiled application may hang or crash. Projects targeting .NET Core 3.1 can be profiled without any issues.

  • Attaching to running .NET Core processes is possible:

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

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

Mono 5.10 and later

Supported

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

Supported profiling types: Timeline.

Supported

Available in: JetBrains Rider, standalone, console tool

Supported profiling types: Timeline.

Notes:

  • Only 64-bit processes can be profiled.

  • Attaching to running Mono processes is not possible.

Mono Unity 2018.3 and later

Supported

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

Supported profiling types: Timeline.

Supported

Available in: JetBrains Rider, standalone, console tool

Supported profiling types: Timeline.

Notes:

  • Attaching to running Unity processes is not possible.

What can you profile with dotTrace in Rider

Last modified: 15 April 2024