在c ++ / windows中获取当前cpu的使用情况

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

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

那么我该怎么做,以获得特定进程的CPU使用情况呢? 我试图用进程名称(资源pipe理器)replace_Total 。 那时候我的CPU使用率是0。 但是我查了资源监视器,一次打开很多窗口,CPU使用率高达20%。 仍然在日志文件的CPU使用率显示为0。

谁能帮我这个?

提前致谢。

Solutions Collecting From Web of "在c ++ / windows中获取当前cpu的使用情况"

您需要使用GetProcessTimes

不幸的是,它不会给你“CPU使用率”,它会给你从进程开始以来的CPU时间量。 因此,要获得CPU使用率,您需要取一个样本,存储该样本,然后在已知时间后再取一个样本,然后计算时间(如果您想知道总使用量,则需要当然,一起添加usertimekerneltime )。

你可以检查这个例子。 解释了该项目中的所有内容。 它将基于进程ID给出内存(与任务管理器中显示的方式相同)

谢谢,Darshan