C++ 在Perfmon中找到CPU百分比

C++ 在Perfmon中找到CPU百分比,c++,winapi,cpu,perfmon,pdh,C++,Winapi,Cpu,Perfmon,Pdh,我正在编程一个客户端,以从windows计算机收集性能数据。这些数据将被发送到中央服务器,存储信息并以图形方式显示 我正在使用windows性能API收集系统数据。但是现在我有一个小问题。服务器需要知道我发送的数据是如何相互关联的,而我在web上找不到任何关于CPU计数器的有用信息。我的问题是这些计数器是如何相互关联的 示例 %处理器时间+%空闲时间=100% 这并不难找到,但我找不到关于其他百分比值的任何信息,如中断时间、特权时间或用户时间。例如,这些与处理器时间的关系如何。最终目标是将所有这

我正在编程一个客户端,以从windows计算机收集性能数据。这些数据将被发送到中央服务器,存储信息并以图形方式显示

我正在使用windows性能API收集系统数据。但是现在我有一个小问题。服务器需要知道我发送的数据是如何相互关联的,而我在web上找不到任何关于CPU计数器的有用信息。我的问题是这些计数器是如何相互关联的

示例

%处理器时间+%空闲时间=100%

这并不难找到,但我找不到关于其他百分比值的任何信息,如中断时间、特权时间或用户时间。例如,这些与处理器时间的关系如何。最终目标是将所有这些值相加,最终得到100%

提前谢谢你,对我的英语感到抱歉,我希望我的问题是清楚的。

(在“将是15%”结尾的段落中)

%特权时间+%用户时间+%空闲时间=100%

这意味着所有其他CPU时间度量都是这三个度量之一的子集。perfmon中的“计数器描述”描述了大多数计数器之间的关系,例如:

%DPC时间是%特权时间的组成部分,因为DPC是在特权模式下执行的


%中断时间不是这样记录的,但它显然也是特权时间的一个组成部分。

嗨,我还在测试。由于舍入/准确性问题,在计算%特权时间+%用户时间+%空闲时间时,我似乎得到了不正确的结果。然后我只使用原始计数器来计算百分比,接近100%(我得到的是99.98%)。但我仍在尝试从其他值计算总特权时间,因为我不能100%确定哪些值与特权时间相关。这是意料之中的。计数器并非完全准确,因此它们的总和不能精确到100%。我认为你不能从其他柜台收集特权时间。这将是类似“dpc时间+中断时间+其他非特殊特权时间”的东西,后者不是一个单独的计数器。是的,我想我无法在windows上获得此类详细信息。谢谢你的回答。