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.
The standalone version of dotTrace is now available on Linux and macOS. Now, you can perform the full profiling workflow on these operating systems, including collecting and analyzing performance snapshots.
Now, you can use dotTrace on ARM64 CPUs on Windows. This applies to all versions: dotTrace standalone, dotTrace in Rider, dotTrace in Visual Studio, and the dotTrace command-line tool.
You can now run the dotTrace command-line profiler on ARM32 CPUs on Linux. The supported frameworks are .NET Core 3.1 and .NET 5.0–7.0. Note that the timeline profiling type is supported only for .NET 6.0 applications.
Before this release, sampling, tracing, and line-by-line performance snapshots had to be opened in the legacy Performance Viewer, while timeline snapshots were opened in the more modern Timeline Viewer. This worsened the overall user experience, since the viewers have different user interfaces and approaches to snapshot analysis.
Now we’re getting rid of the Performance Viewer in favor of the dotTrace Viewer (formerly the Timeline Viewer). dotTrace will use it to open snapshots of all types. However, you may continue to use the discontinued Performance Viewer if you’d like. If you opt to stick with the Performance Viewer, we would love to hear your reasons for doing so. Your feedback is greatly appreciated!
As the dotTrace Viewer now opens snapshots of all types, you can use all of its powerful features when comparing performance snapshots:
dotTrace now provides more details for native system calls in the
Timeline Call Tree, including Windows kernel calls (
device driver calls (
*.sys), and more.
You no longer have to restart the Unity Editor to launch the profiling process. The profiler can now attach to and detach from running Unity processes.
The dotTrace command-line tool and dotTrace in Rider now support Alpine versions 3.13–3.15. The following CPUs and frameworks are supported:
You can now open NetTrace files collected with
from the dotTrace Home menu, click Open Snapshot and choose a
Now dotTrace supports SQL Server events from the
Microsoft.Data.SqlClient provider on Windows (.NET Core, .NET 5+),
as well as macOS and Linux (.NET Core 3.0+, .NET 5+).
You can now navigate the dotTrace Home window using only keyboard combinations. No mouse is needed. Each UI element is assigned to a key or key sequence. There are two ways to view the assigned keys and interact with UI elements:
You can choose which to use in dotTrace Home | Settings.
You can now attach the profiler to an already running application by simply dragging the special icon onto the application window.
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).
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.
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.
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.
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.
You can now profile .NET Core and .NET applications on macOS and Linux using the Timeline profiling type.
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.
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