谱生

adroid系统里面CPU调节器与I/O含义详解

CPU调度器解析如下:
【ondemand】按需模式:
→当空闲时迅速降低频率,解锁或运行应用后会迅速提升频率。
特点:如果CPU足够好的话,响应速度快,性能较稳定,省电效果相对不错,对频率改变的感应略微敏感,会造成一点电量的浪费。
解释一下,这是在电池和性能之间趋向平衡的默认模式,但是对于手机来说,ondemand并不是那么合适,此模式适用于中高端CPU,低端CPU默认的最小频率过于低,这也是有人说好用有人说不好用的原因。
建议:对于我们小三来说,个人建议使用该模式的同时设置最小CPU频率,在保证了使用舒适度的前提下,也可以尽可能的省电,推荐这样设置后的ondemand模式。
【performance】高性能模式:
→无论何时都使用用户设定的最高频率,即使系统负载非常低cpu的频率也为最高。
特点:响应速度、流畅度、稳定性为全部模式之最,但耗电生猛,长期使用会造成硬件提前老化。
建议:不建议日常使用,手里好几块备用电池、边充电边玩、玩要求高的游戏的时候,这几类特殊情况用这个模式,另外说一下,为了安全和健康起见,变充边玩的基友用的电池最好是原电或品牌电池,并开启飞行模式。
【interactive】交互模式:
→规则是“快升慢降”,当有高需求时迅速跳到高频率,当低需求时逐渐降至低频率。
特点:注重响应速度和性能, 但稳定性和省电都不如ondemand。
建议:相对设置后的ondemand,个人不推荐。
【conservative】保守模式:
→规则是“慢升快降”,注重省电,当有高需求时逐渐提高频率,当低需求迅速降至低频率。
特点:比ondemand省电。
建议:只希望省电的基友可以考虑此模式。
【powersave】省电模式:
→无论何时都使用用户设定的最低频率。
特点:所有模式中最省电但使用舒适度最差。
建议:不建议日常使用,可用于为ROM不带睡眠功能的机器在睡觉的时候用。
有基友说,把最低频率设定高一点可不可以日常用,当然可以,performance同样可以完成如此设定,可是没有任何意义,使用低频并且不变频除了睡觉的时候,别的时候用郁闷死你急死你,不要钻牛角尖对不对?
【hotplug】-单核模式:
和ondemand模式差不多。在这个模式系统会在检测到CPU低负载关闭一个核心变成单核。双核一下的就别想了。
【userspace】-用户隔离模式:
当cpu设置模块处于非工作状态时控制cpu速度的一种方法。
【lagthree】-不受延迟模式:
一种CPU调节策略,倾向于节省电量。
【smartass】-智能模式:
是interactive和conservative模式的升级,实际cpu不会降到最低,响应快,待机应该会耗电
【SmartassV2】智能模式升级版:
修复了前一个模式一些小问题。很不错的模式
【OndemandX】按需X模式: 
→在Ondemand基础上改进而来。关屏时手机进入睡眠状态时,锁定最高频率频率为500Mhz 
【Scary】胆小模式(无力吐槽这个翻译):
→基于Ondemand修改,CPU提升速度比ondemand慢,同时具有smartass的特点。
【interactiveX】交互X模式:
→在interactive基础上改进而来。关屏时手机进入睡眠状态时,锁定频率为最低值,同时在手机唤醒时能有更好的提升表现。比interactive更注重保护电池。
【lionheart】狮心模式: 
→基于conservative模式,但性能有所提高,增快了CPU的调整速度
【Wheatley】惠特利模式:
→规则和Ondemand一样,但是响应速度稍慢,比Ondemand省电
SavagedZen】平衡模式
→在smartass的基础优化而来,同时注重电池和性能,使CPU达到一个更好的整体平衡
【badass】分工模式: 
一个新型的CPU调速器,只能用于多核CPU,可分开控制单个CPU内核,来分工完成不同的工作,并且跟着工作量的不同,分别调整单个CPU内核的频率,从而提高性能,节省资源。这个模式现在好像只能用在特定修改的rom中
agfree】无延迟模式: 
→很少用的调速器,不紧不慢型,无论负载变化快慢与否,CPU都按一定的停顿时间逐级升高或降低频率。
【lazy】懒惰模式: 
→与 ondemand 相似,对于频率上升和下降的响应都很迟缓,可以忽略掉部分迅速变化的频率变化,优点是省电。
注重性能的玩家:Ondemand,Interactive,Minmax,Hotplug
注重性能和电量平衡的玩家:SmartassV2,Lulzactive
注重电量的玩家:Conservative,Wheatley
当然大家也可以选择其他的几个,还是那句话,没有最好的只有最合适的。


关于I/O


noop 
这个调度模式会把所有的数据请求直接合并到一个简单的队列里。不适合有机械结构的存储器?因为没有优化顺序?会增加额外的寻道时间。属于最简单的一个调度模式?无视io操作优先级和复杂性?执行完一个再执行一个?如果读写操作繁多的话?就会造成效率降低。
anticipatory 
其实这个有点类似于pc硬盘的NCQ功能?执行有预测性的调度?看起来似乎可以提高效率?不过因为它的预测机制会在进程将要结束一个读写操作时时开始准备下一个的预处理?所以会打乱系统正常的连续io调度?降低随机存取效率。用的人很少?不推荐。
deadline 
顾名思义?用过期时间来排序io操作顺序?保证先出现的io请求有最短的延迟时间?相对于写操作?给读操作更优先的级别。是比较好的一个调度模式。 
cfq
正常队列?是anticipatory模式的替代品?没有过多的做预测性调度?而是根据给定的进程io优先级?直接来分配操作的顺序。这个模式在linux上表现良好?但也许并不是最适合android的io调度模式?太强调均衡?而降低了连续读写数据的性能
vr
具有和deadline相似的操作排序机制?有着最高的峰值读写速度?但是性能比较不稳定?也就是说可能跑出最高的分数?但是也会出现最低值。
sio 
虽然基于deadline?但是它和noop一样?不会对io操作进行排序?所以有着noop那样快速的存取速度?但并没有过多优化io操作。如果不喜欢noop完全不参与调度?也可以选择这个
I/O如果不是想着把CPU烧毁。建议选择cfq.正常模式。另外听说cm10玩3d游戏可能fps值不流畅和这个有关!  选择ondemand 就会降低3D性能,选择userspace或者performance的话,游戏性能大幅提高。

评论
上一篇 下一篇

© 谱生 | Powered by LOFTER