wq_601840968 发表于 2018-12-18 14:30:33

linux 应用程序里while(1), top:cpu 98%,功耗会增加吗?

假如系统没有用户应用程序执行,那么内核应该会一直执行cpu_idle进程,
该进程中会死循环调用schedule函数进行系统调度,查找就绪队列中的进程进行调度;

这么看来,不管用户应用程序占用CPU的比例为多少,CPU其实是一直在执行指令的,
一刻也没有停止,对CPU来说没什么区别吧?

mangolu 发表于 2018-12-18 14:34:48

CPU占用率不同,功率肯定不同!现在的CPU也会动态调整运行频率。你可以拿你笔记本接可调电源开机看就知道了。

redroof 发表于 2018-12-18 14:36:09

有区别啊,啥都不干的时候就是运行idle函数,那个函数会调用电源管理让cpu休眠的

68336016 发表于 2018-12-18 15:15:42

很大区别。以前同事写的程序有问题,cpu占有率90%多,能跑起来,但是电流100多ma,芯片也很热。后来找到bug,cpu占有率下降到10%内,电流降到80ma,芯片也不发热了。

hyghyg1234 发表于 2018-12-18 15:56:24

我让树莓派3B+,4核全部100%很快就到80多度了。

avr-arm 发表于 2018-12-18 16:13:38

功耗区别相当大

wq_601840968 发表于 2018-12-21 08:41:31

实测 arm9 ,cpu100%38度,cpu%10 34度,环境温度21度

Edesigner. 发表于 2019-1-3 16:29:06

redroof 发表于 2018-12-18 14:36
有区别啊,啥都不干的时候就是运行idle函数,那个函数会调用电源管理让cpu休眠的 ...

正解,楼主的思维还停留在单片机系统上。

Gorgon_Meducer 发表于 2019-1-3 16:54:36

Edesigner. 发表于 2019-1-3 16:29
正解,楼主的思维还停留在单片机系统上。

即便是单片机系统,也是讲究在IDLE里面进入休眠的。

abnerle 发表于 2019-3-7 16:50:10

空闲时间让出CPU,在任何系统或裸机程序里,都很重要,必须注意做

cpumaker 发表于 2019-3-7 16:57:20

Cmos稳定时无功耗,状态切换时才产生功耗

rom 发表于 2019-3-7 17:14:08

肯定增加,而且全功率跑

vuo50z 发表于 2019-3-7 17:25:09

肯定有增加,但是比实际的应用程序占用98%时少,因为while(1)全在cache中执行,不会有ram读取。
实际程序肯定会有ram操作,功耗还会增加。

gzhuli 发表于 2019-3-7 17:39:15

Idle进程不是死循环调用schedule函数的,会让CPU休眠然后等待中断唤醒后再调用schedule。
页: [1]
查看完整版本: linux 应用程序里while(1), top:cpu 98%,功耗会增加吗?