Optimizes hot-path scalar loops in .NET 8+ with cross-platform Vector128/Vector256/Vector512 SIMD intrinsics, or replaces manual math loops with single TensorPrimitives API calls.
Asynkron.Profiler
Use the open-source free `Asynkron.Profiler` dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts.
Trigger On
- the repo wants
Asynkron.Profilerorasynkron-profiler - the user wants automation-friendly profiling output instead of GUI-only tooling
- profiling needs are CPU, allocation, exception, contention, or heap focused and should land as plain-text summaries in CI, scripts, or agent workflows
- the task needs to render an existing
.nettrace,.speedscope.json,.etlx, or.gcdumpfile into a readable report
Workflow
- Decide whether the task is a new profile capture or rendering an existing trace artifact.
- Prefer built
Releaseoutput overdotnet runso the trace represents the target app rather than restore/build noise. - Install and verify all three tools before assuming the profiler is usable:
- asynkron-profiler - dotnet-trace - dotnet-gcdump
- Choose exactly one primary mode first:
- --cpu - --memory - --exception - --contention - --heap
- Use
--input <path>when the trace already exists and the task is about rendering or narrowing the report, not recollecting data. - Refine the output only after the baseline run:
- --root <text> to anchor the call tree - --filter <text> to trim tables - --exception-type <text> for exception-heavy flows - --calltree-depth, --calltree-width, --calltree-self, --calltree-sibling-cutoff
- Treat
profile-output/as the stable output folder for review artifacts and reruns. - If the task needs process attach, counters, or raw official diagnostics flows rather than this CLI frontend, hand off to
profiling.
Deliver
- a repeatable
asynkron-profilercommand path for the profiling mode that matches the problem - explicit install and prerequisite commands
- a clear baseline command plus any focused
--root,--filter,--exception-type, or call-tree options needed for readable output - trace replay guidance when the task starts from an existing artifact
Validate
asynkron-profiler --help,dotnet-trace --version, anddotnet-gcdump --versionall succeed- the chosen profiling mode matches the question being investigated
- the command profiles built
Releaseoutput unless there is a documented reason to acceptdotnet runnoise profile-output/contains the expected report or artifact after the run- any replay flow uses an input file type that matches the selected mode
References
- overview.md - tool positioning, install paths, prerequisites, and when to choose it over raw diagnostics CLIs
- commands.md - command patterns for capture, replay, and option tuning
- examples.md - mode-by-mode examples, output expectations, and troubleshooting checks
Related skills
Use the open-source CodeQL ecosystem for .NET security analysis.
Scans .NET code for ~50 performance anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and I/O with tiered severity classification.