An advanced profiler for .NET Applications on Windows and macOS
An advanced profiler for .NET Applications on Windows and macOS
Ultra is an advanced profiler for .NET Applications available on Windows and macOS (Apple Silicon).
️ Check this video for a quick tour of ultra! ️
.NET, .NET JIT, .NET GC, .NET CLR, Native, KernelGC Allocation Ticks: Details about allocations. GCHeapStats: Statistics about the GCGCSuspendEE, GCRestartEE, GC Start, GC Stop eventsnet8.0+ via dotnet global tool| Screenshot of a trace generated by ultra visualized with https://profiler.firefox.com. Check this trace online here! |
|---|
You need to have installed a .NET 10.0+ SDK
$ dotnet tool install -g Ultra # The command ultra.exe will be available from your PATH
The profiler requires to run from an elevated prompt with administrative rights
This is required to allow to collect full stack traces, including kernel and native functions.
Example: open a terminal with administrative rights, to profile an executable called my_commands.exe:
$ ultra.exe profile -- my_command.exe arg0 arg1 arg2...⚠️ Notice the
--separator to separate the arguments toultra.exefrom the arguments to the profiled application.
Profiling a running application just requires the PID of the process to profile:
$ ultra.exe profile 15243 # PID of the process to profile
# Wait for a bit and press only one CTRL+C to stop the profilingOn macOS, no elevated privileges are required. The profiler injects a small sampler library into the launched process to collect native and managed call stacks.
$ ultra profile -- my_command arg0 arg1 arg2...Current limitations on macOS:
--sampling-interval minimum is 1ms).libsystem_pthread.dylib) are not resolved.For more details on how to use Ultra, please visit the user guide.
This software is released under the BSD-2-Clause license.
Alexandre Mutel aka xoofx.
No open issues yet, or sync has not completed.