Этот вопрос относится к xperf и xperfview, утилитам, входящим в состав Windows Performance Toolkit (в свою очередь, в состав Windows SDK 7.1).
Сравнивая две диаграммы, «Выборка ЦП по потокам» и «Использование ЦП по потокам», я обнаружил несколько различий, которые я не понимаю. Я буду использовать audiodg.exe в качестве примера.
В раскрывающемся списке Threads есть только один поток для audiodg на диаграмме CPU Sampling; диаграмма использования ЦП показывает несколько потоков audiodg.
На обоих графиках ось Y отмечена как «% использования», но измерения различаются. Обычно процент использования для данного потока ниже на диаграмме выборки ЦП, чем на диаграмме использования ЦП.
Сводная таблица CPU Sampling показывает Weight и % веса для каждого модуля/процесса. Если я загружаю символы, я могу довольно глубоко погрузиться в процесс audiodg. Сводная таблица планирования ЦП (запускается из графика использования ЦП) показывает использование ЦП и % использования ЦП — вес недоступен. (И наоборот, загрузка ЦП недоступна в сводной таблице выборки ЦП.) Я не могу копаться так глубоко в audiodg — я вижу только основной поток и несколько потоков ntdll.dll.
Цифры для любого процесса в столбцах % использования ЦП и % веса всегда разные. Иногда они отличаются более чем на 75%.
Итак, мои вопросы ... какова надежная мера использования ЦП здесь? Разве цифры использования ЦП не получены из образцов ЦП? Разве числа не должны быть как-то связаны?