我想分析长过程(6-8小时)的表现。我需要有关已创建/已完成的进程(使用命令行)和CPU利用率的信息。
我发现,Windows性能分析器(wpa.exe / xperfview.exe)是分析的绝佳工具。我创建了性能数据收集器,选择提供商' Windows内核跟踪'关键字'进程'并获得有关流程的信息。
但我无法通过采样找到有关CPU利用率的信息。 我知道,那个
xperf.exe -on Base
收集CPU信息,但它产生了太多信息......
此外,我可以将性能计数器的CPU利用率收集为* .blg文件,但我无法将此文件加载到Windows性能分析器中。 :(
有什么想法吗?
答案 0 :(得分:2)
您可以从命令提示符(cmd.exe)running as admin使用此命令获取带有Stacks的CPU采样:
xperf -on PROC_THREAD+LOADER+PROFILE -stackwalk profile -buffersize 1024 -MaxFile 1024 -FileMode Circular && timeout -1 && xperf -d C:\HighCPUUsage.etl
这会创建一个最大大小为1GB的文件。 Xperf / ETW在长期分析中效果不佳,因为文件太大了。因此,运行该命令,如果在Taskmgr中看到高CPU使用率,请按键以停止记录。在WPA.exe中打开ETL,现在看到最后几分钟。