我想在我的代码中计算特定应用程序的当前cpu使用情况。我在网上查了一下,找到了适合windows的pdh库。当我尝试它时,我得到的是整个cpu使用而不是一个进程的cpu使用。
PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);
那么我使用这一行来获取特定进程的cpu使用情况呢?我尝试用进程名称(explorer)替换 _Total 。那时我得到0 cpu使用率。但我检查资源监视器,一次打开许多窗口增加CPU使用率高达20%。仍然在日志文件中cpu使用率显示为0。
任何人都可以帮我吗?
提前感谢。
答案 0 :(得分:3)
您需要使用GetProcessTimes
不幸的是,它不会给你“CPU使用率”,它会给你自进程启动以来的CPU时间量。因此,为了获得CPU使用率,您需要获取一个样本,存储该样本,然后在一段时间后再采用另一个样本,然后计算时间(如果您想知道总使用量,则需要当然,将usertime
和kerneltime
加在一起。
答案 1 :(得分:-3)
例如,您可以查看this。解释了该项目中的所有内容。它将根据进程ID(在任务管理器中显示的相同方式)提供内存
谢谢, 达显