我想在我的代码中计算特定应用程序的当前 CPU 使用率。我在互联网上查找并找到了适用于 Windows 的 pdh 库。当我尝试它时,我得到的是整体 CPU 使用率,而不是一个进程的 CPU 使用率。
PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);
那么我如何处理这一行来获取特定进程的 CPU 使用率?我尝试用进程名称(资源管理器)替换 _Total。那时我的 cpu 使用率是 0。但我检查了资源监视器,一次打开多个窗口会使 cpu 使用率增加 20%。仍在日志文件中,CPU 使用率显示为 0。
谁能帮我解决这个问题?
提前致谢。
最佳答案
您需要使用 GetProcessTimes
不幸的是,它不会为您提供“CPU 使用率”,它会为您提供自进程启动以来的 CPU 时间量。因此,要获得 CPU 使用率,您需要获取一个样本,将其存储,然后在已知时间后获取另一个样本,然后计算时间(如果您想知道总使用率,则需要当然,将 usertime
和 kerneltime
添加在一起)。
关于c++ - 在 c++/windows 中获取特定进程的当前 cpu 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18095994/