SuperAPI AI 工具集

pvanalyze

编程与开发

查看项目

更新于 10-16 00:05

技能介绍

用途:pvanalyze 用于从命令行检查已有的 .NET .nettrace 文件,做 PerfView 风格的跨平台跟踪分析。它只分析跟踪产物,不负责采集;采集应先用 dotnet-trace。

主要能力:info 读取跟踪元数据;gcstats 查看 GC 次数、堆大小、暂停与时间线;alloc 按类型查看分配;datas 分析 DATAS 堆计数调优;jitstats 查看 JIT 编译开销;cpustacks 查看热点方法、按模块或命名空间分组,并导出 SpeedScope;calltree 探索热路径与调用者/被调用者;events 按提供程序、事件类型、负载、PID 或 TID 过滤;exceptions 汇总异常;timeline 与 snapshot 提供时间分桶上下文。

使用方式:安装可用 dnx pvanalyze(.NET 10+)或 dotnet tool install --global pvanalyze;若包不可解析,可从源码构建:git clone https://github.com/adityamandaleeka/pvanalyze,cd pvanalyze,dotnet build -c Release,dotnet run -c Release -- info ./trace.nettrace。先运行 pvanalyze info <trace.nettrace> 确认文件可打开并包含预期进程,再选一个聚焦命令。自动化消费建议加 --format json,人工查看用 --format text。可用 --from 与 --to 限定时间窗口,--process 指定多进程跟踪中的目标。cpustacks 支持 --group-by method|module|namespace 与 --inclusive;calltree 支持 --hot-path、--caller-callee、--depth、--min-percent;timeline 支持 --lanes 与 --buckets;snapshot 支持 --at 与 --window。清理缓存用 pvanalyze clean <trace-or-directory>。

适用场景:已有 .nettrace 且需要终端或 JSON 摘要的代理或 CI 工作流;GC、JIT、CPU、分配、异常、事件与调用树分析;需要 SpeedScope 导出但源文件是 .nettrace 的情况。

限制:CPU 堆栈、分配、DATAS、异常与事件过滤仅在跟踪包含所需事件时有效;分配分析需采集分配事件,DATAS 需 .NET 9+ DATAS 事件与详细 GC 运行时事件;工具会把 .nettrace 转换为同目录 .pvanalyze.etlx 缓存,可能影响干净工作目录;SpeedScope 输出仅来自 cpustacks,交互式火焰图需另用查看器;源码当前面向 net8.0,README 另记录 dnx pvanalyze 为 .NET 10+ 路径。上游 README 说明 --help 与 README 即预期的代理上下文,未提供单独的 SKILL.md 或 AGENTS.md。