首页 小组 话题 唠叨 搜索 文章 相册 我的社区 用户

【经典】uperf-一款主打省电流畅的调度模块

2022-07-15 22:39:31
1
1404

(已获得作者授权,有任何关于使用问题欢迎在评论区讨论~)

模块当前最新版本Dev-22.7.09 下载方式见结尾

【更新日志】


新增 sdm8g1+支持

改进 任务放置

改进 功耗估计准确度

...合计26个commit

【已支持平台】


高通

骁龙 625/626/660/636/82x/835

骁龙 662/665/675/710/712/730/730g/750g/765/765g/768g/780/778g/778g+

骁龙 845/855/855+/860/865/865+/870/888/888+/8gen1/8gen1+

联发科

Helio P65/G70/G80/G85/G90T

天玑 700/720/800/810/820/900/920/8000/8100

天玑 1000/1000l/1000+/1100/1200/9000

三星

Exynos 8890/8895/9810/9820/9825/990/1080/2100/2200

谷歌

Tensor gs101

【预置的性能模式】


卡顿powersave:较大的性能限制,适合流畅度要求不高的用户

均衡balance:适中的性能限制,适合手机日常

费电performance:约等于没有性能限制,适合平板日常

极速fast:跟费电差不多,偏持续性能输出,适合手机电竞

【子模块说明】


SfAnalysis:推荐,以较低功耗代价减少掉帧

SsAnalysis:可选,如果遇到桌面动画掉帧,可尝试它



Uperf

一个Android用户态性能控制器,实现大部分内核态升频功能,并支持更多情景识别。


主要功能

根据识别的场景类型,动态设定参数控制性能释放,支持所有sysfs节点

支持动态绑定正在操作的APP的UI相关线程到大核集群

从Linux层面读取Android的触摸屏输入信号,识别点击和滑动

主动采样系统负载,识别例如APP启动的瞬间重负载

监听cpuset分组更新操作,识别正在操作的APP发生切换

监听唤醒锁更新操作,识别屏幕是否熄灭

监听注入到Surfaceflinger的hook发送的通知,识别渲染开始、滞后、结束

支持Android 6.0 - 12

支持arm64-v8a

支持Magisk方式一键安装,版本不低于20.4+

不依赖于Magisk,可以手动方式安装

除非SfAnalysis注入失败,大多数情况SELinux可保持enforcing

不依赖于任何Android应用层框架以及第三方内核

为大多数热门硬件平台提供了调参后的配置文件

下载


Magisk方式

下载后通过Magisk Manager刷入,Magisk版本不低于18.0

重启后查看/sdcard/Android/yc/uperf/uperf_log.txt检查uperf是否正常自启动

手动安装

如果你的设备无法安装Magisk,并且已经获取到ROOT权限

下载后手动解压缩,例如解压缩到/data/uperf

修改setup_uperf.sh,run_uperf.sh,initsvc_uperf.sh权限为755

执行setup_uperf.sh完成安装,检查输出信息是否有报错

执行run_uperf.sh启动uperf,检查输出信息是否有报错

打开/data/cache/injector.log,检查sfanalysis注入是否成功

如果关联自启动到第三方APP,设置在开机完成后执行run_uperf.sh

如果关联自启动到系统启动脚本,插入sh /data/uperf/initsvc_uperf.sh

重启后查看/sdcard/yc/uperf/uperf_log.txt检查uperf是否正常自启动

性能模式切换

修改启动时的默认性能模式

打开/sdcard/Android/yc/uperf/cur_powermode.txt

修改auto, 其中auto为开机后使用的默认性能模式,可选的模式有:

auto根据正在使用的App进行动态响应

balance均衡模式,比原厂略流畅的同时略省电

powersave卡顿模式,保证基本流畅的同时尽可能降低功耗

performance费电模式,保证费电的同时多一点流畅度

fast性能模式,相对于均衡模式更加激进

重启

启动完成后切换性能模式

方法1:

执行sh /data/powercfg.sh balance,其中balance是想要切换到的性能模式名称。


方法2:

安装Scene为APP绑定对应的性能模式。


常见问题

Q:是否对待机功耗有负面影响?

A:Uperf的实现做了不少低功耗的优化,自身运行的功耗开销很低。此外预制配置文件的待机模式中,减少了待机时唤醒的核心数量并使用了保守的升频参数。待机功耗的优化主要靠减少唤醒时长比例,在此基础上Uperf可进一步降低一点待机功耗。


Q:为什么使用了Uperf还是很费电?

A:SOC的AP部分功耗主要取决于计算量以及使用的频点。Uperf只能控制性能释放,改进频点的选择从而降低功耗,如果后台APP的计算量很大是无法得到显著的续航延长的。这一问题可以通过Scene工具箱的进程管理器来定位。


Q:是否需要关闭系统的温度控制?

A:系统温度控制是一种硬件保护措施,或者用于改善高负载下的用户体验。大多数情况下无需关闭它,如果你遇到性能严重受限的情况,例如运行竞技游戏CPU最大频率限制在1.4Ghz,请提升温控介入的阈值或者关闭系统温度控制。


Q:Uperf和Scene工具箱是什么关系?

A:这两个软件独立运作,没有互相依赖。Uperf实现了接口可供Scene工具箱调用,例如性能模式切换以及分APP性能模式。如果不安装Scene工具箱也可以实现性能模式切换,详情见使用方式。


Q:是否还需要关闭系统的performance boost?

A:Uperf模块内脚本已经关闭了大部分主流的用户态和内核态升频,如果有非常规的升频需要用户自己关闭。


Q:我遇到了一些奇怪的系统故障,是怎么回事?

A:Uperf在大多数平台可以正常工作,在测试阶段收集到了以下可能发生的故障:


桌面启动器不响应触摸。这个目前只在MIUI 12遇到,如果遇到了此问题请删除/data/adb/modules/uperf/enable_sfanalysis

触摸屏报点间断丢失。请检查是否使用了自动跳过之类的APP,特别是支持坐标点击的

睡死。用户态应用程序理论上不会影响系统稳定性,请更换为官方内核和ROM

Q:使用Magisk安装时提示not supported,这是为什么?

A:此硬件平台没有预制的配置文件,可能需要自行适配。


uperf-Dev-22.7.09 https://yc9559.lanzoum.com/inX9007lbg9a

sfanalysis-magisk-22.06.05 https://yc9559.lanzoum.com/idJqs05xxpda


ssanalysis-magisk-22.04.30 https://yc9559.lanzoum.com/iOyKm041ilyj



扫码_白.png
评论 (1)