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

可紊 提交于 2019-11-28 09:57:04

问题


I want to calculate current cpu usage for particular application in my code. I looked up on internet and found pdh library for windows. When I tried it I am getting overall cpu usage not cpu usage for one process.

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

So what I do with this line to get cpu usage for particular process? I tried replacing _Total with process name(explorer). At that time I am getting 0 cpu usage. But I checked in resource monitor that opening many windows at a time increased cpu usage upto 20%. Still in log file cpu usage is showing 0.

Can anyone help me with this?

thanks in advance.


回答1:


You need to use GetProcessTimes

And unfortunately, it won't give you the "CPU usage", it will give you the amount of CPU-time since the process started. So to get CPU usage, you will need to take one sample, store that, and then take another sample a known amount of time later, and then calculate the time (and if you want to know the total usage, you'll need to add the usertime and kerneltime together, of course).




回答2:


You can check this for example. Explained everything in that project. It will give memory based on process id(same way shown in task manager)

Thanks, Darshan



来源:https://stackoverflow.com/questions/18095994/getting-current-cpu-usage-in-c-windows-for-particular-process

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!