This page details the latest updates and changes in dotTrace.
Free 30-day trial available
We’ve introduced comprehensive support for the Undo and Redo actions and filter history in the standalone version of dotTrace. Now, each filter change is recorded, making it easy to revert to any previous state. Use the Undo button or hotkey to undo the latest change and the Redo button to reapply it. You can also access a drop-down list to revert multiple steps at once, with changes listed in chronological order.
All versions of dotTrace receive several performance improvements, including faster processing of Timeline snapshots and data on the Call Tree and Hotspots views.
Now, you can profile applications based on the MAUI framework.
Currently, dotTrace supports:
The support is available for dotTrace standalone and dotTrace integrated into Rider and ReSharper.
dotTrace now includes user interface (UI) presets. The presets adjust the UI to show only the profiling settings relevant to specific applications: General (all application types), Unity developer, and Unreal Engine developer.
We improved profiling on macOS:
.app
) instead of executable files.
net7.0-macos
,
net8.0-macos
, net7.0-maccatalyst
,
net8.0-maccatalyst
, Xamarin.Mac
.
Now, when configuring a Timeline profiling session, you can specify the following advanced options:
Instead of analyzing the Call Tree, you can now view performance profiling data right in the source code. The Source view displays time distribution information for specific lines of code. As of now, this feature is only available for timeline snapshots taken on Windows.
System.Data.SqlClient
data provider for the .NET and .NET Core
frameworks. You can view the corresponding events in the SQL Queries filter.
Now, the Call Tree view lets you group call stacks by individual threads, allowing deeper insight into thread-specific performance issues.
The standalone version of dotTrace on Linux and macOS gets the Source View window. After you select a call in the Call Tree, Source View will show you the source code of the corresponding method.
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 (ntoskrnl.exe
),
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 dotnet-trace collect:
from the dotTrace Home menu, click Open Snapshot and choose a
.nettrace file.
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
Free 30-day trial available