了解测试机器状态 防杠声明:测试机型、芯片体质不同,对于如今高性能芯参考意义不大,主要针对入门级芯片
机器MI MAX 3
系统MIUI 12.5.1.0官方ROM
机器的电池实际含量只有约4800mAh(49换的电池被雷总当猴耍了)
SOC:骁龙636(660改)4+4二丛集架构,4中核1.8GHz,4小核1.6GHz
@极客湾 soc综合性能27.5分,约等于“山寨神芯”T610 是一颗实打实的能效芯片所以测试的项目对于当今手机都算低负载,但是对于骁龙636来说已经算是高负载了
测试软件:Kite_v1.5.6
起因:虽然小米给到了12.5.1.0的版本(泪目),但是小凡致敬安卓之光,给我的MAX3淦成了888系的同一水平,一天一充还有小小电量焦虑,这谁受得了。
所以前段时间忙完以后,刷上了yc调度和doze省电模块。强烈提醒:刷机不谨慎,救砖到天亮!!!
前排提醒:芯片实力决定上限,辣鸡调度刷新下限。什么调度遇上636也焕发不了第二春。
首先讲日常体验,再看yc的核心调度策略和官方的区别,最后再看GitHub页面yc调度是怎么实现对性能的判断和联合调度是如何实现的。
日常体验,yc调度可以做到1.5天一充,系统调度0.8天一充。通过后台应用唤醒和运行数据,可以看出yc对后台应用的管理更加严格,而且后台留存能力大幅提升。(后面会说槽点!!!别急)
测试数据:
先说主观体验,加载时间差不多,但是在信息流时明显感觉到yc调度更加跟手丝滑
首先看类似于日常使用的综合测试(Q音后台播放音乐,微信刷朋友圈,酷安刷自己动态,打开支付宝付款码,最后清理后台打开B站播放视频)
先科普一下,一般来说,中核(CPU4-7)的峰值性能更高,在高频率下跑出来的能效偏低,而小核(CPU0-3)频率如果拉满,相对能耗会偏高。所以在高负载下,中核往往频率调的高一点;而且中核小核的调度也应当一致。
这是系统调度,总体倾向于小核锁定在1.65GHz低负载下适当降频,大核根据性能需要调节到峰值1.8 GHz。然而不难发现中核小核各调各的,没有配合,系统调度不够丝滑。当打开应用或快速滑动信息流时,难免不能激发最高性能,能效较低,滑动也不够丝滑。
再看yc调度,比系统调度做的好在中小核的调度上体现出一致性,同增同减,甚至对比帧率图会发现系统调度对于操作的响应,没办法一瞬间拉高频率,而yc可以做到,无疑可以增加流畅体验,而不是像系统调度一样一卡一卡的。
再看信息流测试
前者是系统调度,后者是yc调度。可以看见在信息流中负载下,yc调度的降频策略更激进。而系统调度还是一样的问题,没办法做到中小核的一致性,导致快速滑动时性能上不来。而且yc调度遇到滑动时调度更刚,也保证了顺滑浏览。
到了视频测试
前者系统调度,后者yc调度。这时候两者的中核都维持在1.2GHz,但是小核的系统调度异常的刚,直接拉满了!但是yc调度降频积极,为了应对大量弹幕才会拉高频率。
前者系统调度,后者yc调度,都是一条直线,系统调度产生的一次抖动(应该是偶然误差)
结论:总的而言小米的调度策略是很混乱的,没有协调性,这也在近年的翻车弃舰上很明显,而在日常使用上yc调度会更加省电,搭配doze省电模块,能效更优秀。槽点是微信消息不及时(辣鸡软件不接入Mipush),需要把微信设置成白名单。对于爱折腾的人,在scene里面可自定义程度很高。
分析一下yc是怎么做到的,源网页www.github.com/yc9559/uperf
这样在刷信息流的时候,可以保证滑动丝滑,而不立马降频。
检测进程活动也可以巧妙的判断时机,什么时候降低频率而不导致卡顿,降低功耗。
这样可以分析APP启动或打开二级界面所需要的性能调度,实时分析,比起高通的Boost框架更加科学。
检测事件可以“预判”高性能要求的进程,提前放到中大核,让屏幕解锁时和应用切换时调度更加积极,不导致卡顿。
注释:文中部分图片摘自本人的酷安频道,故带上了酷安水印,请见谅