手机不用也耗电正常吗,手机不使用也耗电正常吗

首页 > 经验 > 作者:YD1662022-10-27 11:27:38

对于手机灭屏下的表现,我们可以从图中得到很多耗电相关的信息,关键信息摘录如下:

上文batterystats模块中”cpu running“指标阐述的是休眠与否这个状态。然而,linux系统可分为三种状态:工作态、空闲态、休眠态。系统工作态与空闲态这两种状态下的运行表现,对灭屏功耗同样起着至关重要的影响。

手机不用也耗电正常吗,手机不使用也耗电正常吗(5)

如上图所示,灭屏下系统处于唤醒状态时(持有wakelock未休眠或者睡眠后被唤醒),如果cpu没有被关闭,那么处理deadline、real time、fair调度类上的任务时认为cpu处于工作态。为了改善灭屏工作态的功耗,往往通过减少任务量、降低硬件功耗两方面来制定策略,比如冻结与清理非核心的任务、job策略优化、降低cpu的工作频率、关闭能效差的cpu等。此时batterystats模块又充分展示出”对耗电工作的主动与积极性“,对灭屏下的各个应用的cpu使用情况做了详细的统计,这对灭屏耗电分析与调试、优化效果呈现等方面起到一定的辅助作用,结果示例如下:

手机不用也耗电正常吗,手机不使用也耗电正常吗(6)

当deadline、realtime、fair调度类上无任务需要处理时,kernel则会执行idle调度类上的任务,该任务的职责是走cpu idle流程以节省功耗。另外,可以选择不同的idle governor比如menu governor、ladder governor、平台定制的governor等以满足不同的应用场景。为了快速便捷的了解各cpu的idle执行情况,可通过idlestat开源工具(源码参考网址https://github.com/scheduler-tools/idlestat)来分析、统计各个cpu在每个idle c-state下的停留时间、进入次数等信息,也可通过busybox powertop工具(源码参考网址https://busybox.net/)来分析cpu的irq、timer表现以找出top类的idle唤醒源。

另外,当cpu的idle级别达到某个级别以上(C1、C2 ….),或者处于idle的cpu数量达到某个条件,亦或者其它特殊的条件(不同平台表现不一)得到满足时,SOC往往会进入深度定制的省电模式以将idle状态下的耗电降低到极致。其中,这里提及的特殊条件的满足,依赖的条件往往比较多,各个设备模块往往充分利用内核提供的runtime pm框架,在合适的时机尽可能的释放相应的资源以提供必要条件。runtime pm状态描述如下:

手机不用也耗电正常吗,手机不使用也耗电正常吗(7)

关键函数示例如下:

手机不用也耗电正常吗,手机不使用也耗电正常吗(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.