首页 > 代码库 > c++ 计算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 

c++ 计算cpu占用率