CPU使用率问题

[复制链接]
1738|3
 楼主| txcy 发表于 2012-9-14 17:48 | 显示全部楼层 |阅读模式
最近思考cpu使用率,有些问题想不明白,发贴请教一下大家。

按我们的编程经验是循环空转会导致cpu使用率上升,循环空转如果从汇编角度来看,是一直做

寄存器操作加1
判断寄存器值是否为0
跳转

这三步动作中是哪一步比较耗cpu呢 还是都耗

我们平时代码中也不乏循环操作,为啥这些循环操作就没这么耗cpu呢

我们知道系统有一个idle进程,这个进程占用cpu比较高时,如果是其它进程占用cpu高,系统反应就会比较快,否则会慢一些
idle进程跟其它进程有啥区别

我们常说计算密集型的程序比较耗cpu,io密集型程序相对小一些。那就是说io读取不消耗cpu? 那从内存读数据耗不耗cpu?

我们知道程序在执行sleep的时候,cpu消耗是比较低的,那在sleep期间,cpu是在做什么呢? cpu什么状态算是空闲态呢?

为啥cpu 100%久了,主机容易重启

欢迎大家讨论,什么是cpu使用率,什么因素会影响cpu使用率
火箭球迷 发表于 2012-9-14 18:00 | 显示全部楼层
占用CPU的事情主要是:
1、CPU内部的ALU进行算术逻辑运算;
2、CPU的PC指针跳转;
3、CPU的寄存器操作;
4、CPU进行寄存器与存储器之间的搬运工作;
5、CPU中断处理。
而其它不耗费CPU资源的事情,主要是由各种硬件模块自己分担工作。比如DMA、浮点运算协处理器,显卡和声卡对数据的批量处理等等。
yybj 发表于 2012-9-14 18:08 | 显示全部楼层
idle进程---实际上是不存在的
耗不耗CPU不能微观的去看待
sinadz 发表于 2012-9-14 18:16 | 显示全部楼层
2楼总结的很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部