我们有few questions here涵盖了如何确定每个进程的CPU使用率。最“交钥匙”的方法是使用Win32_PerfFormattedData_PerfProc_Process运行WMI查询以获取PercentProcessorTime。
这些“格式化的”类是该类的相应原始版本(例如Win32_PerfRawData_PerfProc_Process
)的包装。 Win32_PerfFormattedData_PerfProc_Process
的{{3}}告诉我们它的值是使用CookingType
的{{1}}和PERF_100NSEC_TIMER
的{{1}}从原始类中形成的。这意味着用于计算原始类中的值的间隔是PerfTimeFreq
的值。
现在,如果我查看格式化类返回的数据实例的属性Frequency_Sys100NS
,它们就是Frequency_Sys100NS
。但是在原始类上,我确实看到了一个10000000的值,我猜这意味着格式化的类将原始值分隔为1秒(10000000 * 100NS = 1秒)。
我解释这个权利吗?是否有任何方法可以更改类的采样频率,以便在更大或更小的间隔内对每个进程的CPU使用率进行采样?我可以使用原始类自己完成,跟踪每个进程的原始值,但是最好利用现有的基础结构为我完成工作。