繁体   English   中英

获取特定进程在C ++ / Windows中的当前cpu用法

[英]Getting current cpu usage in c++/windows for particular process

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

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

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

谁能帮我这个?

提前致谢。

您需要使用GetProcessTimes

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

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

谢谢,大山

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM