2

我想在我的代码中计算特定应用程序的当前 cpu 使用率。我在互联网上查找并找到了适用于 Windows 的 pdh 库。当我尝试它时,我得到的是整体 cpu 使用率,而不是一个进程的 cpu 使用率。

PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);

那么我如何使用这条线来获取特定进程的 cpu 使用率?我尝试用进程名称(资源管理器)替换_Total 。那时我的 CPU 使用率为 0。但是我检查了资源监视器,一次打开多个窗口会使 CPU 使用率增加 20%。仍在日志文件中 cpu 使用情况显示为 0。

谁能帮我这个?

提前致谢。

4

2 回答 2

3

你需要使用GetProcessTimes

不幸的是,它不会给你“CPU使用率”,它会给你自进程开始以来的CPU时间量。因此,要获取 CPU 使用率,您需要采集一个样本,存储它,然后在已知时间后采集另一个样本,然后计算时间(如果您想知道总使用量,您需要当然,将usertimeand加kerneltime在一起)。

于 2013-08-07T06:56:52.020 回答
-4

例如,您可以检查这个。解释了该项目中的所有内容。它将根据进程 ID 提供内存(与任务管理器中显示的方式相同)

谢谢,达山

于 2014-07-31T05:42:56.643 回答