前言
目的:读取并控制CPU占用率
近期在做CPU Usage方面的事情,让CPU以一种高占用率的状态运行一定的时间,需要读取CPU各个核的占用率,网上关于这方面的资料好少,FQ也只找到了一个WMI的方法,但是感觉对比任务管理器里面的结果偏小。目前也只能读取CPU总的占用率,和任务管理器看起来差不多,也不是完全相同。
虽然还没有实现结果,但是想记录一下历程。
参考链接:
https://blog.csdn.net/wangting627/article/details/22931337
https://blog.csdn.net/fyxichen/article/details/50577580
内容
1. 任务管理器查看CPU占用率。
方法一:
方法二:
2. C++读取CPU的占用率
原理:先读取一次CPU的当前的空闲时间,内核时间和用户时间,间隔一秒,再次读取三个时间,经过公式演算,得到CPU在这一秒内的占用率。
第一次读取:
FILETIME ftIdle, ftKernel, ftUser; BOOL flag = FALSE; if (flag = GetSystemTimes(&ftIdle, &ftKernel, &ftUser)) { m_fOldCPUIdleTime = FileTimeToDouble(&ftIdle); m_fOldCPUKernelTime = FileTimeToDouble(&ftKernel); m_fOldCPUUserTime = FileTimeToDouble(&ftUser); } return flag;