What′s New in dotTrace

This page guides you through notable updates in recent dotTrace releases. Highlights include support for Visual Studio / JetBrains Rider and simplified profiling of async code.

Download dotTrace

Free 30-day trial

Support for Apple silicon processors 2021.3

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

Performance improvements 2021.3

  • We reduced the performance overhead of Timeline profiling for applications that heavily use async calls.
  • We improved the performance of opening and filtering in Timeline snapshots.

Saving UI state for Timeline snapshots 2021.3

When you close a Timeline snapshot, dotTrace saves the state of the user interface, including selected time intervals, applied filters, and so on. Next time you open the snapshot, dotTrace will restore the UI to the same state.

Support for TPL events on macOS and Linux 2021.3

The dotTrace command-line tool and dotTrace in Rider now let you collect data on asynchronous calls on macOS and Linux. To get this data, use the Timeline profiling mode. The Call Tree shows async calls, including awaits and continuations.

Improved support for child processes on macOS and Linux 2021.3

The dotTrace command-line tool and dotTrace in Rider can now profile child processes of applications on macOS and Linux in the Timeline profiling mode. This support is available only for .NET 5+ applications.

Native profiling 2021.2

It’s now possible to profile native applications on Windows. When starting a profiling session, you have the option to download native source symbol files from remote servers. Native profiling is only available for the Timeline profiling type.

Timeline profiling on macOS and Linux 2021.2

You can now profile .NET Core and .NET applications on macOS and Linux using the Timeline profiling type.

New Home Screen 2021.1

We’ve completely reworked the dotTrace Home screen. It’s much easier to configure and start new profiling sessions, work with snapshots, and perform other basic operations.

Command-line profiler as a .NET global tool

Command-line profiler as a .NET global tool 2021.1

You can install and use the dotTrace command-line profiler as a dotnet global tool: dotnet tool install --global JetBrains.dotTrace.GlobalTools --version 2021.1.0

.NET 5 support 2020.3

dotTrace now lets you profile .NET 5 applications on Windows, macOS, and Linux. Note that to profile applications on Linux and macOS, you should use either JetBrains Rider or dotTrace command-line profiler.

Call Tree as a flame graph

Call Tree as a flame graph 2020.3

In Rider, you can switch the call tree to the flame graph mode. The graph helps you quickly identify the slowest methods in the current scope.

Call Tree folding in Rider

Call Tree folding in Rider 2020.3

dotTrace for Rider gets the call tree folding feature (earlier it was available only in the standalone version of dotTrace). It helps simplify call tree analysis by folding chains of calls that do not belong to user modules and assemblies.

Other Updates

Other Updates 2020.3

  • You can hide native threads in the Threads list in Rider.
  • The File I/O timeline filter now includes the FileIOCreate events.
  • You can hide the Top Methods list in Rider.
  • Multiple bugfixes.
Native profiling of Mono and Unity applications

Native profiling of Mono and Unity applications 2020.2

Both standalone dotTrace and dotTrace in Rider can profile the native part of Mono/Unity applications on Windows. Start a session with the ‘Enable native profiling’ option selected, and you’ll see both native and managed call stacks in the performance snapshots.

Support for ARM64 architecture

Support for ARM64 architecture 2020.2

The dotTrace command-line profiler for Linux (any distribution with GLIBC_2.23 or later) lets you profile applications on ARM64 systems.

Other improvements

Other improvements 2020.2

  • The profiler lets you control the profiling session (take snapshots, detach from the profiled process, and so on) by sending commands to stdin or a file.
  • The new self-profiling API (the API that lets applications initialize and start a profiling session by themselves) is much easier to use. The self-profiling API is distributed as a NuGet package.
Improved Linux and macOS support

Improved Linux and macOS support 2020.1

  • Now, you can profile .NET Core applications on macOS and Linux using the Tracing profiling mode. To do this, you should use either JetBrains Rider or dotTrace command-line profiler.
  • Now, you can attach the profiler to running processes on Linux.
Next Important Call

Next Important Call 2020.1

Now, you can navigate through Call Tree using the Next Important Call action. Press Ctrl+Shift+Right and dotTrace will navigate you to a node that is most relevant for further analysis (for example, a node with high own execution time).

The feature is available in dotTrace Standalone (both Performance Viewer and Timeline Viewer), in Visual Studio, and JetBrains Rider.

Download dotTrace

Free 30-day trial