Skip to content

Latest commit

 

History

History
74 lines (53 loc) · 2.92 KB

readme.md

File metadata and controls

74 lines (53 loc) · 2.92 KB

Ultra ci NuGet

Ultra is an advanced profiler for .NET Applications available on Windows.

📽️ Check this video for a quick tour of ultra! 📽️

✨ Features

  • ETW based sampling profiler - up to 8190 samples/second
  • UI based on https://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 and Marker Table visualization
  • Precise kernel, native and managed function 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 GC
    • GCSuspendEE, 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 with https://profiler.firefox.com. Check this trace online here!
Profile Screenshot

🧑‍💻 Usage

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 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 to ultra.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
# Wait for a bit and press only one CTRL+C to stop the profiling

📖 User Guide

For more details on how to use Ultra, please visit the user guide.

🪪 License

This software is released under the BSD-2-Clause license.

🤗 Author

Alexandre Mutel aka xoofx.