この質問は、Windows Performance Toolkit の一部であるユーティリティ (Windows SDK 7.1 の一部) である xperf および xperfview に関するものです。
「スレッドごとの CPU サンプリング」と「スレッドごとの CPU 使用率」の 2 つのグラフを比較すると、いくつかの違いがわかりません。例として audiodg.exe を使用します。
Threads プルダウンでは、CPU Sampling チャートに audiodg のスレッドが 1 つだけあります。CPU 使用率チャートには、いくつかの audiodg スレッドが表示されます。
どちらのグラフにも「% 使用率」とマークされた Y 軸がありますが、測定値は異なります。通常、特定のスレッドの使用率は、CPU サンプリング グラフの方が CPU 使用率グラフよりも低くなります。
CPU Sampling の要約テーブルには、各モジュール/プロセスの重みと % の重みが表示されます。シンボルをロードすると、audiodg プロセスをかなり深く掘り下げることができます。CPU Scheduling Aggregate Summary テーブル (CPU 使用率グラフから起動) には、CPU 使用率と % CPU 使用率が表示されます -- 重みは使用できません。(逆に、CPU サンプリング サマリー テーブルには CPU 使用率はありません。) audiodg を深く掘り下げることはできません。メイン スレッドといくつかの ntdll.dll スレッドしか表示されません。
[% CPU 使用率] 列と [% 重み] 列のプロセスの数値は常に異なります。場合によっては、75% 以上異なることもあります。
だから私の質問...ここでのCPU使用率の信頼できる尺度は何ですか? CPU 使用率の数値は CPU サンプルから導き出されたものではありませんか? 数字は何らかの形で関連しているはずではありませんか?