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))
运行效果
c++ 计算cpu占用率相关推荐
- Linux环境下如何计算CPU占用率
1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [root@rh ~]$ cat /proc/ ...
- 性能测试——CPU占用率的计算原理
cpu 关于性能测试中cpu数据抛出以下4个问题? 1.CPU的占比是什么含义,是怎么计算的? 2.为什么在日常性能测试中开发最认可的数据是cycle数(windows性能测试报告中的产出数据之一), ...
- 关于vmstat,top,ps aux查看的cpu占用率不一致的问题
问题: 用vmstat,top,和ps aux三个命令查看进程对cpu的占用率,数值差异很大. 例: 用 vmstat 查看系统cpu空闲率, id是cpu的空闲率,可以看出,空闲率一直在73%以上 ...
- c语言程序会使cpu变高,用 C 语言写个程序,运行时,cpu占用率一直保持50%
好记性不如烂笔头 --东西太多,脑子永远不够用 问题 用 C 语言写个程序,运行时,cpu占用率一直保持50% 解决方案 一看题目好眼熟!<编程之美>!然而已经记不清楚了,果然东西需要经常 ...
- XP中CPU占用率100%原因及解决方法
我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看"任务管理器"才发现CPU占用达到100%.这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在 ...
- 深度解读鸿蒙轻内核CPU占用率
摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...
- 让多核CPU占用率曲线听你指挥(Windows实现)——《编程之美》1.1学习笔记
让多核CPU占用率曲线听你指挥--<编程之美>1.1学习笔记 Problem: 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.有以下几种情况: ...
- 慢慢欣赏linux CPU占用率和负载
CPU使用率如何计算,可以参考busybox的实现 其原理是每隔5s读一次/proc/stat,两次的值相减作为CPU占用率. /proc/stat的含义详见附件. int top_main(int ...
- CPU占用率百分百原因及解决方法
我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看"任务管理器"才发现CPU占用达到100%.这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在 ...
最新文章
- Java爬虫——B站弹幕爬取
- Android服务之AIDL
- python绘制雷达图-使用Python绘制雷达图
- 利用Eclipse/MyEclipse 实体类生成.hbm.xml文件
- 成功解决未授予用户在此计算机上的请求登录类型图文教程
- 文件内容查看---Linux
- c语言 cstring “+”: 运算符不起任何作用;应输入带副作用的运算符_国家计算机二级考试C语言选择题高频考点汇总,干货满满...
- zabbix企业应用之low level discovery监控memcache
- 与二次元老婆邂逅的游戏的创建过程(二)
- [附源码]java毕业设计景区门票系统
- 知网文献nh、caj格式文件转成pdf
- 2018再见,2019你好
- Android Studio获取数字签名(SHA1)
- connection reset by peer
- 计算机网络 吕林涛,吕林涛简介
- Dreamweaver CS6下载及安装步骤
- P1478 陶陶摘苹果(升级版)(C++_贪心)
- 国庆头像html代码
- 环信创建群组html,群组管理
- VSCode替换掉/去掉空行
热门文章
- JAVA计算机毕业设计喜枫日料店自助点餐系统(附源码、数据库)
- excel一列数据中每个数重复固定次数
- 比江小白杜蕾斯还要清新,这些文案,可能这就是青春吧!
- 29-高级路由:BGP清除
- vue中,应用mapbox地图(一)——mapbox-gl地图设置中文是zh-Hans不是zh accessToken-访问令牌 正确版本streets-v11
- 算法--UR机器人位姿表示
- 启动虚拟机报错:.vmss”还原虚拟机状态时出错。 错误导致继续运行操作失败。请保留挂起状态并纠正错误,或放弃挂起状态。
- linux操作系统具有哪些特性,Linux系统拥有哪些特性?这些你必须知道!
- 2018 NOIP 提高组 复赛 day1
- 粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解