有没有办法通过DLL调用或其他方式获取windows xp中的系统cpu负载。我想在我的程序中嵌入调用,当CPU负载达到100%时,我想捕获时间。我的程序是每两天最大化cpu负载,我想知道确切的时间,以便我可以做一个数据转储和分析数据。
谢谢!

最佳答案

您可以使用性能计数器。
"Using the PDH Functions to Consume Counter Data"
您应该使用的特定计数器是处理器时间:
处理器时间是处理器执行非空闲线程的时间百分比。
此计数器被设计为处理器活动的主要指示器。
它是通过测量处理器执行空闲进程的线程所花费的时间来计算的-
在每个采样间隔中,从100%中减去该值。
(每个处理器都有一个空闲线程,当没有其他线程准备运行时,该线程会消耗周期)。
它可以看作是完成有用工作所花费的采样间隔的百分比。
此计数器显示在采样间隔期间观察到的忙时间的平均百分比。
它是通过监视服务处于非活动状态的时间,然后从100%中减去该值来计算的。

#define _PROCESSOR_COUNTER _T("\\Processor(0)\\% Processor Time")

关于c - 以编程方式监视XP上的CPU负载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1509749/

10-11 08:09