fengyue 发表于 2016-6-17 20:49

Kernel Adiutor 简明设置指南

Kernel Adiutor 设置比较复杂, 写下几个关键参数, 供大家参考:

一) CPU部分:
    CPU Governor(调度算法), 有以下几种选项:
    1.1) ondemand
         简单的说就是平衡电池与性能, 并向性能优先倾斜. 比如你在手机上打开一个应用时, ondemand会在短时间内把CPU拉升到较高的频率, 以做到快速响应. 应用被打开完成以后, ondemand又会慢慢的把频率回调到较低的频率, 以便省电.
    1.1) intelliactive
    1.2) interactive
         intelliactive , interactive 是基于 ondemand 的改进算法, 原理与ondemand完全一样. interactive 的改进点时, 需要拉升CPU频率时, 比ondemand更快. 同时, 回调CPU频率时, 也比ondemand更快(ondemand是慢慢的回调, interactive是迅速回调)
          intelliactive 是基于interactive的改进算法. 主要是针对多核心CPU, 能够根据任务的负载量, 合理的拉升或回调"一部分CPU核心". 这样,让CPU利用更合理.
   
    1.5) powersave
         省电优先模式.简单说就是"牺牲性能换取更加省电". 比如你打开了手机的一个应用, powersave会让CPU维持在一个"勉强够用"的频率上工作, 以便换取最大的省电.(频率越高越费电)

    1.6) performance
    1.4) userspace
         这2个永远不要用.

    以我的moto xt1570(骁龙808 , 3G内存)为例, 平时不玩游戏主要是办公,查资料,看书使用, 我的设置如下:
  方案一:2个big核心, CPU Governor设置为: powersave(省电优化);4个littel核心, CPU Governor默认为intelliactive (平衡偏性能)
    方案二:2个big核心, 全部关闭. 只使用4个littel核心, CPU Governor默认为intelliactive (平衡偏性能)
   注: 骁龙8xx基于大小核技术, big核为A57, littel为A53. A57性能约为A53的1.5倍, 耗电量以及SOC尺寸约为A53的四倍.所以,这种手机省电的关键点是尽量减少big核心的运行时间.


二) I/O Scheduler部分

   Scheduler 有以下几种设置选项:
   2.1) noop
            "先到先服务"模式, 这是所有模式中,最简洁的一种. 可以简单的理解为, 你一个较短的时间里, 先后在手机了打开了2个应用,A和B, 那么, noop会先读取A应用的数据, 读完之后, 再读取B应用的数据.先应用打开的时间顺序, 排好队,一个一个的服务.
   2.2) deadline
            "时间限定"模式,优先处理能快速完成的任务.比如你在一个较短的时间里,先后在手机上打开了2个应用,A和B.A应用打开总共需要10秒, 而B应用打开只需要1秒. 这时, deadline会优先让B应用先运行----虽然你是先点击的A应用.
   2.3) row
            "先读后写"模式.简单的说就是优先处理数据的读取, 然后再处理数据的写入. 比如: 你打开了一个应用(打开应用需要读取数据), 这个应用还在打开的过程中, 你等不及了, 又打开相机拍了个照片(照片需要保存, 所以需要数据写入).这时, 按row的"先读后写"原则 , 会先让你点击的应用打开, 之后, 再保存你刚刚拍摄的照片. (相机此时可能会卡住一段时间)
   2.4) cfq
   2.5) bfq
         "谁牛B就先对谁服务"模式. 简单说就是, 先服务系统级应用, 再服务普通应用. 普通应用也要根据谁的优先级高就先服务谁. 比如你正在查你的手机联系人(联系人应用是系统级应用), 这时, 后台的微信也出来捣乱, 说有个好友给你发了一个视频,需要你看. cfq / bfq 模式下, 会先让手机优先处理你查询手机联系人的请求, 然后再处理微信提出的请求.
          bfq相对于cfq加强了对机械硬盘的优化(bfq按扇区读写优化),相对来说不适合android使用.

   android手机中,由于都是电子保存器(内存卡), 同时又有CPU相对较弱的特点, 所以, 最佳的选择是noop.或者deadline也不错.

落木萧瑟 发表于 2016-6-17 21:17

感谢分享!虽然我看不懂。。

but22fly 发表于 2016-6-24 22:24

支持大神{:loveliness:}

a2177000 发表于 2016-6-25 21:25

感谢分享!之前一直对I/O不是很理解,这回清楚了!谢谢!!!

gxq945 发表于 2017-2-18 13:51

感谢分享!虽然我看不懂

zhc19 发表于 2017-6-22 15:17

mark mark mark

TUUZKI 发表于 2017-6-23 08:52

支持,最喜欢这种科普贴了

Null0319 发表于 2017-10-29 01:00

支持,好贴

tintin16 发表于 2017-11-8 10:48

学习,学习,谢谢。

YongYong315 发表于 2018-1-11 22:51

MARK 感谢大神 学习了
页: [1] 2
查看完整版本: Kernel Adiutor 简明设置指南