c++ 计算cpu占用率 |
您所在的位置:网站首页 › 如何计算cpu的利用率 › c++ 计算cpu占用率 |
计算CPU占用率就是获取系统总的内核时间 用户时间及空闲时间 其中空闲时间就是内核空转 所以内核时间包含空闲时间 然后计算 运行时间 = 内核时间 加 用户时间 减去 空闲时间 间隔时间 = 内核时间 加 用户时间 cpu使用率% = 运行时间 / 间隔时间 ; 无论单个进程cpu占用率还是系统整个cpu占用路 都是如此原理 核心代码就是如下几段 BOOL res = GetSystemTimes( &preidleTime, &prekernelTime, &preuserTime); //间隔一段时间 例如间隔1秒后 BOOL res = GetSystemTimes( &idleTime, &kernelTime, &userTime ); // 计算数据间隔 LONGLONG idle = (idleTime - preidleTime); LONGLONG kernel = (kernelTime - prekernelTime); LONGLONG user = ( userTime - preuserTime); int cpu = ((kernel - idle +user)*100) /(kernel+user) ; 代码见 http://www.oschina.net/code/snippet_614253_45586
对指定进程的CPU占用率 依旧是计算CPU空闲时间比 获取事件的办法可以使用 wmi 查询 或者调用API // 获取指定进程时间 hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, ProcInfo.th32ProcessID); GetProcessTimes(hProcess, &creationTime, &exitTime, &kernelTime, &userTime)) 运行效果
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |