这个问题与 xperf 和 xperfview 相关,它们是 Windows Performance Toolkit 的一部分(又是 Windows SDK 7.1 的一部分)。
比较两个图表,“按线程的 CPU 采样”和“按线程的 CPU 使用率”,有几个我不明白的区别。我将使用 audiodg.exe 作为示例。
在 Threads 下拉菜单中,CPU Sampling 图表上只有一个用于 audiodg 的线程;CPU 使用情况图表显示了几个 audiodg 线程。
两张图都有一个标记为“使用百分比”的 Y 轴,但测量值不同。通常,CPU 采样图表上给定线程的百分比使用率低于 CPU 使用率图表上的百分比。
CPU 采样汇总表显示每个模块/进程的重量和重量百分比。如果我加载符号,我可以深入研究 audiodg 过程。CPU 调度聚合摘要表(从 CPU 使用情况图表启动)显示 CPU 使用情况和 % CPU 使用情况——权重不可用。(相反,CPU 使用情况在 CPU 采样汇总表中不可用。)我无法深入研究 audiodg——我只看到主线程和几个 ntdll.dll 线程。
% CPU 使用率和 % 权重列中任何进程的数字总是不同的。有时它们的差异超过 75%。
所以我的问题......这里的CPU使用率的可靠衡量标准是什么?CPU Usage 数字不是来自 CPU Samples 吗?这些数字不应该以某种方式相关吗?