用途:Asynkron.Profiler 是面向命令行的 .NET 性能分析前端,用于对 .NET 命令或已有跟踪文件做 CPU、分配、异常、争用和堆分析,输出纯文本摘要,便于在 CI、脚本或智能体工作流中使用。
主要能力:支持五种主模式:--cpu(采样热点)、--memory(GC 分配与按类型调用树)、--exception(抛出计数与抛出点树)、--contention(等待时间树)、--heap(通过 dotnet-gcdump 查看保留堆形态)。可用 --input 渲染已有 .nettrace、.speedscope.json、.etlx 或 .gcdump 文件。输出可用 --root、--filter、--exception-type 及 --calltree-depth、--calltree-width、--calltree-self、--calltree-sibling-cutoff 等参数细化。
使用方式:先安装工具与前置依赖:dotnet tool install -g asynkron-profiler --prerelease、dotnet tool install -g dotnet-trace、dotnet tool install -g dotnet-gcdump,并用 asynkron-profiler --help、dotnet-trace --version、dotnet-gcdump --version 验证。采集新分析时建议先 dotnet build -c Release,再运行 asynkron-profiler --cpu -- ./bin/Release/<tfm>/MyApp;也可传入 .csproj 或 .sln 路径。渲染已有跟踪:asynkron-profiler --input ./profile-output/app.nettrace --cpu。报告默认写入 profile-output/。
适用场景:需要自动化友好、纯文本性能报告的场景,或需要从已有跟踪文件生成可读报告。
限制:上游目前以 .NET SDK 10.x 为支持基线;dotnet run 会产生包含还原和构建的噪声跟踪;工具依赖 dotnet-trace 与 dotnet-gcdump,缺少前置依赖或诊断 IPC 被阻止会导致失败;--heap 只反映保留堆形态,不提供 CPU 或分配时间线;本工具针对启动的命令或已有跟踪文件,进程附加、计数器或原始诊断流程应改用 dotnet-profiling。