Каков интервал выборки в классе Win32_PerfFormattedData?Могу ли я изменить это? - PullRequest
0 голосов
/ 12 ноября 2018

У нас есть несколько вопросов здесь , касающихся того, как определить использование ЦП для каждого процесса.Наиболее «готовым» способом является выполнение запроса WMI с использованием Win32_PerfFormattedData_PerfProc_Process для получения PercentProcessorTime.

Эти «отформатированные» классы являются обертками вокруг соответствующей необработанной версии класса, например, Win32_PerfRawData_PerfProc_Process.Документация для Win32_PerfFormattedData_PerfProc_Process говорит нам, что ее значения сформированы из необработанного класса с использованием CookingType из PERF_100NSEC_TIMER с PerfTimeFreq из Frequency_Sys100NS.Это означает, что интервал, используемый для вычисления значений из необработанного класса, равен значению Frequency_Sys100NS.

Теперь, если я посмотрю на свойства, подобные Frequency_Sys100NS, на экземплярах данных, возвращаемых из отформатированногокласс, они NULL.Но в необработанном классе я вижу значение 10000000, которое, как я предполагаю, означает, что отформатированный класс получает необработанные значения, разделенные на 1 секунду (10000000 * 100NS = 1 секунда).

Я правильно понимаю?Есть ли способ изменить частоту дискретизации классов, чтобы получить загрузку ЦП для каждого процесса за больший или меньший интервал?Я мог бы использовать необработанные классы и делать это сам, отслеживая необработанные исходные значения для каждого процесса, но было бы неплохо использовать существующую инфраструктуру для выполнения работы за меня.

...