我希望能够在Wince下运行的C ++程序中获得当前的%CPU使用率。
我发现this link说明了源代码的位置,但我在平台构建器安装中找不到它 - 我希望这是因为它不是Windows Automotive平台。
有谁知道我在哪里可以找到这个源代码或者(甚至更好)知道如何直接获取这些信息?即什么DLL /函数调用make等。
答案 0 :(得分:5)
由于CE中不存在GetProcessTimes,您必须计算它。
您必须从the toolhelp APIs开始枚举进程中的进程和线程。然后,为每个线程调用GetThreadTimes并添加所有线程。
请记住,计算此信息的行为将影响CPU利用率。
答案 1 :(得分:1)
我发现GetIdleTime
(或WEC7或更新的CeGetIdleTimeEx
)可以很好地计算系统范围的处理器使用率。用于计算处理器空闲时间百分比的示例代码显示在GetIdleTime
MSDN page上。显然,可以通过从100减去空闲时间百分比来计算处理器利用率百分比。
MSDN页面确实警告对GetIdleTime
的支持取决于OAL实现。
答案 2 :(得分:0)
请注意,使用toolhelp API计算CPU使用率时,需要进行两次测量,然后计算差异。这样做时,你不会知道在第二个样本之前终止的任何线程的CPU数量。
因此,经常创建短期线程的应用程序将无法在结果中正确显示。
答案 3 :(得分:0)
您可以查看Remote Task Monitor。它将让您获得流程(或线程)的当前%CPU使用率,正是您所需要的。它的重量也很轻,不会对您的设备造成太大影响。