计算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))
运行效果

c++ 计算cpu占用率相关推荐

  1. Linux环境下如何计算CPU占用率

    1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [root@rh ~]$ cat /proc/ ...

  2. 性能测试——CPU占用率的计算原理

    cpu 关于性能测试中cpu数据抛出以下4个问题? 1.CPU的占比是什么含义,是怎么计算的? 2.为什么在日常性能测试中开发最认可的数据是cycle数(windows性能测试报告中的产出数据之一), ...

  3. 关于vmstat,top,ps aux查看的cpu占用率不一致的问题

    问题: 用vmstat,top,和ps aux三个命令查看进程对cpu的占用率,数值差异很大. 例: 用 vmstat 查看系统cpu空闲率, id是cpu的空闲率,可以看出,空闲率一直在73%以上 ...

  4. c语言程序会使cpu变高,用 C 语言写个程序,运行时,cpu占用率一直保持50%

    好记性不如烂笔头 --东西太多,脑子永远不够用 问题 用 C 语言写个程序,运行时,cpu占用率一直保持50% 解决方案 一看题目好眼熟!<编程之美>!然而已经记不清楚了,果然东西需要经常 ...

  5. XP中CPU占用率100%原因及解决方法

    我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看"任务管理器"才发现CPU占用达到100%.这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在 ...

  6. 深度解读鸿蒙轻内核CPU占用率

    摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...

  7. 让多核CPU占用率曲线听你指挥(Windows实现)——《编程之美》1.1学习笔记

    让多核CPU占用率曲线听你指挥--<编程之美>1.1学习笔记 Problem: 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.有以下几种情况: ...

  8. 慢慢欣赏linux CPU占用率和负载

    CPU使用率如何计算,可以参考busybox的实现 其原理是每隔5s读一次/proc/stat,两次的值相减作为CPU占用率. /proc/stat的含义详见附件. int top_main(int ...

  9. CPU占用率百分百原因及解决方法

    我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看"任务管理器"才发现CPU占用达到100%.这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在 ...

最新文章

  1. Java爬虫——B站弹幕爬取
  2. Android服务之AIDL
  3. python绘制雷达图-使用Python绘制雷达图
  4. 利用Eclipse/MyEclipse 实体类生成.hbm.xml文件
  5. 成功解决未授予用户在此计算机上的请求登录类型图文教程
  6. 文件内容查看---Linux
  7. c语言 cstring “+”: 运算符不起任何作用;应输入带副作用的运算符_国家计算机二级考试C语言选择题高频考点汇总,干货满满...
  8. zabbix企业应用之low level discovery监控memcache
  9. 与二次元老婆邂逅的游戏的创建过程(二)
  10. [附源码]java毕业设计景区门票系统
  11. 知网文献nh、caj格式文件转成pdf
  12. 2018再见,2019你好
  13. Android Studio获取数字签名(SHA1)
  14. connection reset by peer
  15. 计算机网络 吕林涛,吕林涛简介
  16. Dreamweaver CS6下载及安装步骤
  17. P1478 陶陶摘苹果(升级版)(C++_贪心)
  18. 国庆头像html代码
  19. 环信创建群组html,群组管理
  20. VSCode替换掉/去掉空行

热门文章

  1. JAVA计算机毕业设计喜枫日料店自助点餐系统(附源码、数据库)
  2. excel一列数据中每个数重复固定次数
  3. 比江小白杜蕾斯还要清新,这些文案,可能这就是青春吧!
  4. 29-高级路由:BGP清除
  5. vue中,应用mapbox地图(一)——mapbox-gl地图设置中文是zh-Hans不是zh accessToken-访问令牌 正确版本streets-v11
  6. 算法--UR机器人位姿表示
  7. 启动虚拟机报错:.vmss”还原虚拟机状态时出错。 错误导致继续运行操作失败。请保留挂起状态并纠正错误,或放弃挂起状态。
  8. linux操作系统具有哪些特性,Linux系统拥有哪些特性?这些你必须知道!
  9. 2018 NOIP 提高组 复赛 day1
  10. 粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解