获取特定进程的c ++ / windows中的当前cpu使用情况

时间:2013-08-07 06:19:48

标签: c++ windows cpu cpu-usage pdh

我想在我的代码中计算特定应用程序的当前cpu使用情况。我在网上查了一下,找到了适合windows的pdh库。当我尝试它时,我得到的是整个cpu使用而不是一个进程的cpu使用。

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

那么我使用这一行来获取特定进程的cpu使用情况呢?我尝试用进程名称(explorer)替换 _Total 。那时我得到0 cpu使用率。但我检查资源监视器,一次打开许多窗口增加CPU使用率高达20%。仍然在日志文件中cpu使用率显示为0。

任何人都可以帮我吗?

提前感谢。

2 个答案:

答案 0 :(得分:3)

您需要使用GetProcessTimes

不幸的是,它不会给你“CPU使用率”,它会给你自进程启动以来的CPU时间量。因此,为了获得CPU使用率,您需要获取一个样本,存储该样本,然后在一段时间后再采用另一个样本,然后计算时间(如果您想知道总使用量,则需要当然,将usertimekerneltime加在一起。

答案 1 :(得分:-3)

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

谢谢, 达显