Android手机耗电分析

news/2024/10/31 1:31:53/
最近在了解超频和耗电的事情,
先来说说CPU频率到底是怎么回事,它有什么效果,它和处理机是如何配合工作的。
CPU的处理机需要一个外部时钟来让自己工作,外部时钟接在处理机的总门上。当收到一个时钟脉冲时,处理机开始作业,当流水线满之后停止,再收到一个时钟时继续作业。
打个形象的例子就是你(处理机)站在马路上,你的身后有一个人(外部时钟),他推了你一把(一个时钟脉冲),你向前走了一步(处理流水线),他再推你一把你就再走一步,他不推你你就不走。
而CPU的频率也就这个时钟。1GHz的频率也就是说一秒内时钟要推动CPU 1000000000次。
这么看来CPU的频率越高,CPU在单位时间就会处理越多的指令,也就越耗电。但是这里面还有一个最最关键的东西,CPU的状态。
再说说CPU的状态。
CPU一般有两种状态,一个是Halt(待机),一个是Process(作业)。
当CPU处在Halt状态时,总门开放(接收外部时钟),中断开放,处理机关闭。
当CPU处在Process状态时,总门开放(接收外部时钟),中断开放,处理机工作。
两者之间的差别就在处理机是否在工作,而处理机是CPU的核心,也是CPU的主功耗所在。
处在Halt状态的CPU就像是你(CPU)躺在马路上一样,即使身后的人(时钟)再怎么推你(时钟脉冲),你也不会动。因为CPU的处理机关闭了,时钟脉冲此时只负责供让CPU接收某个中断进而从Halt状态转换到Process状态,不再提供处理机处理流水线。
到这里就不难看出了,Halt状态的CPU即使频率再高也不会有多少功率消耗,Process状态的CPU即使频率再低也要费电。

CPU的设计者们将CPU的状态更改权完全交给了使用者(也就是操作系统)。
再来说说操作系统对CPU的状态管理。
单任务操作系统(DOS系统)中,因为不存在任务调度和系统Idle,也就不存在让CPU发生状态切换。即此类系统启动后CPU将永远处在Process状态下。
多任务操作系统(Windows、Linux(包括安卓)、MacOS等等)中,操作系统需要做任务调度。
在系统内核里有一个参数是系统的刷新时间(也称之为任务时间片),一般在1毫秒到几十毫秒。操作系统首先根据调度表将需要执行的任务参数调入CPU寄存器和RAM的某个地址,然后开始执行这个任务,当刷新时间到达后,操作系统剥夺这个任务的执行权,将任务的参数保存起来,然后将系统内核的Idle任务参数调入CPU寄存器和RAM,让CPU去执行系统内核的Idle任务。而操作系统内核的Idle任务就是将刷新时间设置到CPU中断上,然后执行一个将CPU转换到Halt状态的指令。当刷新时间到达后,CPU的计时器会触发一个中断,CPU从Halt状态转换为Process状态,而操作系统继续调度下一个任务。如此循环。
到这里也就可以了解了,系统处在Idle任务中的时间越多则越省电,反之则费电。
用Windows系统笔记本的网友应该很清楚,打开任务管理器,Idle进程的CPU占有率越高,电池用的就越久。

再来说说Android系统,安卓是基于Linux系统内核的,所以此类操作均由Linux内核来完成。移动平台上的Android系统都有一个特点就是CPU频率自动调节(其实这个是在编译Linux内核的时候配置的CPU Frequency Scale),当系统不繁忙的时候将CPU频率调低。这样看来,当系统不繁忙的时候也就是内核Idle进程CPU占有率最高的时候,将CPU的频率调低,如此做法当真是省电的基础上又省电。
玩华为机器的网友有福了。。。你们可以在官网上下载对应的Linux内核源代码,然后配置编译。在配置的时候可以配置内核的刷新时间,如果把这个时间调的长一点,则会越省电(是非常非常的省电哦),但是系统用起来感觉就越卡钝,不断尝试找到一个自己能接受的时间点。
其实Windows7比WindowsXP省电的原理也在这里,微软在发布Win7的时候说过,他们把Win7的刷新时间调的比WinXP长了很多。


最后总结一下。还是那句话,如果你爱玩机,平时经常用手机上网。。。经常操作手机,那么还是别超频了。经常操作手机就已经让Idle的时间变得很短了,再超频无疑就是费电的基础上再费电。如果平时不爱玩手机,那么你可以去超频,去体会在需要的时候瞬间打开短信和电话的感觉,呵呵。

另外。。。Android的费电关键还是要看你后台有多少个服务在运行。运行的服务多,系统Idle的时间少,CPU的Halt状态也就少,也就越费电。反之越省电。



BTW,
Android要省电,需不需要安装一个第三方频率控制的软件?
这里没有标准答案,还是要看具体的手机使用情况。
首先,安装这个软件之后,他需要时刻监测CPU的负载,这无疑就降低了系统Idle的时间。
其次,他在调整的时候都是先通知Linux内核调整CPU频率,这中间又有一些任务要占用Idle的时间。
最后,从ARM7架构开始当调整CPU频率时,需要一个重新整合总线时钟的过程。频繁的调整会导致额外的Idle时间减少和其他硬件部件的瞬间耗电。
以前的ARM都是同步时钟,所以可以接受快速CPU时钟调节,但是现在的ARM都转为了异步时钟,就是假如处理机的时钟为800MHz而总线和门的时钟依然可以为1GHz。异步时钟可以在降低CPU频率的基础上依然保证高速的DMA和IO速度。当调节CPU频率的时候都是在直接调整总时钟,然后总时钟会先计算目标处理机时钟和总线等的时钟比例,然后调节到目标处理机时钟,最后再将总线和其他的时钟重新按照比例整合到一个适当的值。而这个比例的计算方法是储存在CPU里面的,用户不能更改。所以无论再怎么超频性能的提升都是一定范围的。
这也就是为什么在Android上把800MHz的CPU超频到1.2GHz却赶不上台式机上将CPU频率从2GHz超到2.4GHz带来的性能提升。
同理,玩Defy的用户应该明白,ME525和ME525+虽然都是OMAP3630的CPU,但一个是800MHz,一个是1GHz。即使前者超频到1GHz,其真实性能也赶不上ME525+,估计超到1.2G左右应该才差不多(跑分软件用的高精度计时器和CPU频率有关,不能说明什么)。

http://www.ppmy.cn/news/396706.html

相关文章

手机充电耗费多少电能

鉴于在北京城中村租房,电费1块五一度贵的离谱,研究一下电器耗电情况。 首先我们先来解释几个名词: 毫安: 毫安是电流的计量单位,用字母mA表示。其中安是国际的统一电流单位,用字母A表示。也是现在手机电池电量的计量点位。 Wh: Wh是电量,它是和电压、电流、时间成正比关…

root后充不了电,手机root后充不进电

手机一键root后充不进电 这应该是你的手机root出现问题造成的 你这个应该是直接在手机上进行root的吧 这样是非常容易出现问题的 针对这样的情况我建议你最好马上下载个应用宝到电脑上 通过电脑给你的手机进行一次全面的root 如果可以顺利进行的话就能帮助你覆盖原来的ro…

浏览器类应用后台耗电解析 教你三招让手机更省电!

手机每天充电,电量还是掉的飞快, 这样的经历你有过吗? 作为手机上网的重要入口, 浏览器类应用的耗电量日益受到关注。 哪些浏览器应用耗电少,体验好呢? 让我们来一窥究竟…… 测试背景说明 数据来源…

三星手机没有电了,自动关机,充不进电的解决方法。

使用的手机型号: 三星A700 问题: 手机是一体机,手机电池不能拆下来的。电用完自动关机了,然后充电时,手机没有像以前,充电提示充电页面和振动,就按了开机键,现在既充不进电&#xff…

充一次电使用一年的手机_冷知识:手机充一次电,需要多少电费?

电,是现代社会最为重要的资源。 去年就有印度网友在网上提问:印度还有两亿人用不上电,中国呢? 现在,中国的电力供应,是全球最普及、最稳定的。目前,中国大约还有20万人用不上电,基本…

别再开省电模式了!华为手机调整这4个设置,手机电量会更持久

华为手机使用久了就会明显感到续航不足,之前80%的电量都能使用一整天,而现在满电也只能使用半天时间。 华为手机出现这种情况有两种原因,一是电池的正常是老化,二是手机中的一些设置没有调整。 一般电池的老化我们是阻止不了的&am…

Android手机节省电秘籍 --------- 一个ANDROID开发者对手机省电的看法

随着智能手机和3G业务的迅速发展,在当下,随时随地都可以看到大家使用的手机都是智能手机。手机的大量应用是丰富了大家的生活,也给带来了方便,但随之而来的智能手机续航能力一直被广大的消费者所诟病,下面就着重讲讲智…

A100 GPU服务器安装CUDA教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…