c++ 计算cpu占用率

您所在的位置:网站首页 如何计算cpu的利用率 c++ 计算cpu占用率

c++ 计算cpu占用率

#c++ 计算cpu占用率| 来源: 网络整理| 查看: 265

计算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