- Notifications
You must be signed in to change notification settings - Fork13
An advanced profiler for .NET Applications on Windows
License
xoofx/ultra
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ultra is an advanced profiler for .NET Applications available on Windows.
📽️ Check thisvideo for a quick tour of ultra! 📽️
- ETW basedsampling profiler - up to 8190 samples/second
- UI based onhttps://profiler.firefox.com/
- Traces shareable online: Check this example: ✨https://share.firefox.dev/3Cya7YW ✨
- Timeline visualization
- Flamegraph / Stack Chart visualization
- Call Tree visualization
- Marker Chart andMarker Table visualization
- Precisekernel,native andmanagedfunction call stacks
- Categorization of functions:
.NET
,.NET JIT
,.NET GC
,.NET CLR
,Native
,Kernel
- .NET GC Memory track
- JIT Compile Time Event Markers
- See which function is getting compiled
- GC Events Markers
GC Allocation Ticks
: Details about allocations.GCHeapStats
: Statistics about the GCGCSuspendEE
,GCRestartEE
,GC Start
,GC Stop
events
- Lightweight trace files - e.g. Generates only a few MB for 10s
- Requires
net8.0+
via dotnet global tool
Screenshot of a trace generated by ultra visualized withhttps://profiler.firefox.com. Check this trace onlinehere! |
---|
![]() |
You need to have installed a.NET 8.0+ SDK
$dotnet tool install -g Ultra# The command ultra.exe will be available from your PATH
🚨 The profilerrequires 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 aterminal with administrative rights, to profile an executable calledmy_commands.exe
:
$ultra.exe profile -- my_command.exe arg0 arg1 arg2...
⚠️ Notice the--
separator to separate the arguments toultra.exe
from 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#Waitfor a bit and press only one CTRL+C to stop the profiling
For more details on how to use Ultra, please visit theuser guide.
This software is released under theBSD-2-Clause license.
Alexandre Mutel akaxoofx.
About
An advanced profiler for .NET Applications on Windows