Releases: yc9559/uperf
DEV 22.04.09
【更新日志】
- 增加大量平台初步适配
- 改进Unity游戏和吃鸡游戏抖动
- 改进弹幕2倍速视频流畅度
- 更新部分平台功耗模型
- 更新SfAnalysis中的二进制补丁工具
- 暂时弃用SsAnalysis
- 日志后缀名更换为txt
【已支持平台】
- HMP平台
- sdm625/626/660/636/82x/835
- exynos7420/8890/8895
- EAS平台
- sdm625/626/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/778/780
- sdm845/855/855+/860/865/865+/870/888/888+/8gen1
- exynos8890/8895/9810/9820/9825/990/1080/2100/2200
- dimensity700/720/800/820/900/920/1000/1000l/1000+/1100/1200/8000/8100/9000
- Helio P65/G70/G80/G85/G90T
【蓝奏云镜像】
DEV 22.04.04
【更新日志】
- 插件式软件架构
- 使用C++重新开发
- 功能模块解耦,易扩展
- 感知能耗的CPU调频器
- 用户态使能全平台统一体验
- 单核高性能,多核高能效
- 20-100hz基础采样率,快响应低开销
- 识别上下文的任务调度器
- UI放大核,非关键放小核
- 全数据驱动,正则匹配
- 花费50%开发时间调试的默认规则
- 动态sysfs写入
- 用户态性能控制器基石功能
- 实现更加简约高效
- SfAnalysis
- 预测掉帧并在发生前拉升CPU
- 改进的帧反馈以及模糊匹配
- patch方式无需更改SELinux状态
- 独立选装,但是强烈推荐
- SsAnalysis
- 跟系统线程放置器斗智斗勇
- 独立选装,但是强烈推荐
- One more thing...
- 配置目录在
/sdcard/Android/yc/uperf
- ...
- 配置目录在
【首批支持】
- HMP平台
- sdm82x/835
- EAS平台
- 82x/835
- sdm845/855/855+/865/865+/870/888/8gen1
- dimensity1000/1000l/1000+/1100/1200/8000/8100/9000
【蓝奏云镜像】
DEV 21.08.15
【预调参配置文件】
- Uperf是个通用用户态性能控制器,用户可完全自定义每个hint执行的动作
- 为了降低使用门槛,提供了主流硬件平台预调参配置文件,开箱即用
- HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
- EAS平台(39份配置文件):
- sdm625/626/650/652/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/775/780
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+/1100/1200
- Helio P65/G70/G80/G85/G90T
【更新日志】
- 修复负优化
- 动态刷新率使用固定刷新率配置无法切换帧率
- 无渲染刷新的界面触摸屏幕后无法退出
active
状态 - 长按后出现
active
与touch
状态震荡 - 微信跳转到内置浏览器加载时间不够快
- 未知分类线程性能限制过大
- 预调参调整
- 移除高通平台EAS平台关于
hispeed
的设置 - 使用
up_rate_limit_us
减缓升频速度 - 小幅下调均衡和卡顿模式待机时小核最大频率
- 移除高通平台EAS平台关于
- 改进
libperfmgr
空配置文件通用化- 修复cmake编译工程选项设置与预期不一致
- 重构
- 无
【测试说明】
- 禁用Perfd-opt和WIPE v2
- 禁用较为激进的温度控制
- Magisk刷入,检查是否正确识别了平台类型
- 重启检查/sdcard/yc/uperf/log_uperf.txt
- 检查使用时的频率选择,体验流畅度和能耗,并给出你们的建议,以及发生问题的场景
- 如果遇到小核负载偏高,推荐使用3C Toolbox的任务管理检查
- 动态高刷默认没有启用,由于OLED屏幕特性,切换可能有可感知的亮度和色彩变化
【下载】
方法一:点击下方"Assets"中的uperf-dev-21.08.15.zip开始下载
方法二:蓝奏云镜像
DEV 21.07.25
DEV 21.07.25
【预调参配置文件】
- Uperf是个通用用户态性能控制器,用户可完全自定义每个hint执行的动作
- 为了降低使用门槛,提供了主流硬件平台预调参配置文件,开箱即用
- HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
- EAS平台(39份配置文件):
- sdm625/626/650/652/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/775/780
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+/1100/1200
- Helio P65/G70/G80/G85/G90T
【更新日志】
- 本次更新合并了10+个commit
- 预调参配置增加
- 骁龙650/652-eas
- 修复负优化
- AffinityHelper线程在应用切换时被频繁唤醒
- 微信跳转到内置浏览器加载时间过长
- 预调参调整
- 均衡模式
SfLag
不再主动搬运负载到超大核
- 均衡模式
- 改进
- 放宽未知分类任务的性能释放
- 重构
- 全局统一缓存的任务分类器,缓存重建时间从450ms降低到150ms(sdm888平台测试)
【测试说明】
- 禁用Perfd-opt和WIPE v2
- 禁用较为激进的温度控制
- Magisk刷入,检查是否正确识别了平台类型
- 重启检查/sdcard/yc/uperf/log_uperf.txt
- 检查使用时的频率选择,体验流畅度和能耗,并给出你们的建议,以及发生问题的场景
- 如果遇到小核负载偏高,推荐使用3C Toolbox的任务管理检查
- 动态高刷默认没有启用,由于OLED屏幕特性,切换可能有可感知的亮度和色彩变化
【下载】
方法一:点击下方"Assets"中的uperf-dev-21.07.25.zip开始下载
方法二:蓝奏云镜像
DEV 21.06.20
【预调参配置文件】
- Uperf是个通用用户态性能控制器,用户可完全自定义每个hint执行的动作
- 为了降低使用门槛,提供了主流硬件平台预调参配置文件,开箱即用
- HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
- EAS平台(37份配置文件):
- sdm625/626/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/775/780
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+/1100/1200
- Helio P65/G70/G80/G85/G90T
【更新日志】
- 本次更新合并了20+个commit
- 预调参配置增加
- 天玑1100/1200
- 骁龙780g
- 修复负优化
- 处理触摸事件序列存在触摸状态变化未通知上层,导致有时无法进入touch相关Hint
- 无正向作用的
sf.disable_backpressure
,可能导致60hz下掉帧 - 线程分类器跳过
com.android.systemui
,可能导致“系统界面无响应” android.bg
设置了错误的优先级,导致使用百度地图时死机- 不够激进的Unity相关规则,导致基于Unity的场景加载偏慢
- 应用音频相关线程优先级设置偏低,导致音频卡顿
- 预调参调整
- 放宽费电模式线程放置限制,跑分请使用费电模式
- Heavyload采用松限制,配合长时长的Hint使用
- 改进
SsAnim
改为定时长类型Hint,状态进入退出更稳定- 动态高刷支持使用系统默认值“-1”
- SfAnalysis和uperf进一步整合,移除Injector标志位
- 先尝试不关闭SELinux注入,失败后设置SELinux许可模式后重试,此重试默认开启
- 减少sensor、kswapd、电话数据对大核的唤醒
- 显著提升开机初始化脚本执行速度,从30s降低到5s(sdm888平台测试)
- 重构
- 整合SsAnalysis到SfAnalysis,减少对
system_server
侵入,减少死机概率 - 新的poke方式,支持在设备SELinux规则限制内从
surfaceflinger
传递整形 - 编译工程切换到cmake,编译参数更明确,NDK或许有些魔法
- 用户态线程调度器前台后台参数完全隔离,实现更加灵活的规则设置
- 分进程的线程分类器,实现更加灵活的规则设置
- 常数时间复杂度的线程分类器缓存表
lock_val
和mutate
支持批量操作
- 整合SsAnalysis到SfAnalysis,减少对
【测试说明】
- 禁用Perfd-opt和WIPE v2
- 禁用较为激进的温度控制
- Magisk刷入,检查是否正确识别了平台类型
- 重启检查/sdcard/yc/uperf/log_uperf.txt
- 检查使用时的频率选择,体验流畅度和能耗,并给出你们的建议,以及发生问题的场景
- 如果遇到小核负载偏高,推荐使用3C Toolbox的任务管理检查
- 动态高刷默认没有启用,由于OLED屏幕特性,切换可能有可感知的亮度和色彩变化
【下载】
方法一:点击下方"Assets"中的uperf-dev-21.06.20.zip开始下载
方法二:蓝奏云镜像
DEV 21.05.23
【预调参配置文件】
- Uperf是个通用用户态性能控制器,用户可完全自定义每个hint执行的动作
- 为了降低使用门槛,提供了主流硬件平台预调参配置文件,开箱即用
- HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
- EAS平台(34份配置文件):
- sdm625/626/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/775
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+
- Helio P65/G70/G80/G85/G90T
【更新日志】
- 本次更新合并了20+个commit
- 新增:SfAnalysis可完整监控帧提交完整流程,内容刷新率切换延迟200ms->110ms
- 新增:变时长sflag和sfboot,可在发生卡顿的帧渲染结束后提前结束
- 新增:显式触摸状态hint,方便对触摸各个阶段定制对应action
- 改进:卡顿模式改用超低主频方案,充分发挥变时长sflag和sfboot特性
- 改进:费电模式改用高主频方案,不同设备stune支持差异较大例如移植的EAS和PELT EAS
- 改进:bootloop recuser统一到在postfs阶段放置标志位,正常开机后模块不再显示为禁用
- 改进:动态帧率切换改为同步调用,解决异步+固定等待时长导致的时序问题
- 改进:降低过渡动画对应动作性能拉升强度,延长持续时间,配合Sfboost兼顾流畅度和功耗
- 改进:webview线程放置,H5页面滑动和公众号文章浏览流畅度更好
- 改进:配合kworker执行时序,CPU主频设置延时0.6ms->0.2ms
- 改进:减少任务放置执行数量,任务放置延时0.6ms->0.4ms
- 改进:小重构TaskClassfier代码实现
【测试说明】
- 禁用Perfd-opt和WIPE v2
- 禁用较为激进的温度控制
- Magisk刷入,检查是否正确识别了平台类型
- 重启检查/sdcard/yc/uperf/log_uperf.txt
- 检查使用时的频率选择,体验流畅度和能耗,并给出你们的建议,以及发生问题的场景
- 如果遇到小核负载偏高,推荐使用3C Toolbox的任务管理检查
- 动态高刷默认没有启用,由于OLED屏幕特性,切换可能有可感知的亮度和色彩变化
【下载】
方法一:点击下方"Assets"中的uperf-dev-21.05.23.1.zip开始下载
方法二:蓝奏云镜像
DEV 21.05.02
HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
EAS平台(34份配置文件):
- sdm625/626/660/636/82x/835
- sdm662/665/675/710/712/730/730g/750g/765/765g/768g/775
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+
- Helio P65/G70/G80/G85/G90T
【更新日志】
- 本次更新合并了30+个commit
- 新增:不同于v1的屏幕点亮HintWakeup,默认关联切换到重负载动作
- 新增:dumpsys法获取顶层APP名称,处理MIUI12小窗场景识别更准确
- 新增:防卡开机系统,如果在开机60秒内重启自动禁用本模块
- 新增:标志位系统,包括SELinux、SfAnalysis、SsAnalysis、perfhal-stub开关
- 新增:内置busybox(@osm0sis),降低对平台二进制工具集依赖
- 新增:HeavyWorker辅助线程处理如线程分类器等耗时任务,消除内部阻塞
- 新增:支持联发科Helio P65(mt6768)/G70(mt6769v)/G80(mt6769t)/G85(mt6769z)
- 新增:支持高通骁龙662
- 修复:容易死机的SfAnalysis和SsAnalysis异步通知方法
- 修复:安兔兔9.0负载被固定小核集群
- 修复:MIUI桌面卸载应用后卡死数秒
- 修复:部分系统硬件服务和daemon错误锁定在小核
- 修复:动态刷新率帧率切换缓存错误
- 修复:三星Exynos 2100不支持schedtune调参
- 改进:均衡模式在boost时减少点亮超大核时长
- 改进:CPU affinity设置执行耗时从1ms降低到0.6ms
- 改进:费电模式以stuneboost/uclamp作为核心,限制性能在散热允许范围内
- 改进:无画面渲染时如待机,最低频率尽可能低,有画面渲染时,最低频率在1.0g上下减少频率波动
【测试说明】
- 禁用Perfd-opt和WIPE v2
- 禁用较为激进的温度控制
- Magisk刷入,检查是否正确识别了平台类型
- 重启检查/sdcard/yc/uperf/log_uperf.txt
- 检查使用时的频率选择,体验流畅度和能耗,并给出你们的建议,以及发生问题的场景
- 如果遇到小核负载偏高,推荐使用3C Toolbox的任务管理检查
- 动态高刷默认没有启用,由于OLED屏幕特性,切换可能有可感知的亮度和色彩变化
下载:
方法一:点击下方"Assets"中的uperf-dev-21.05.02.zip开始下载
方法二:蓝奏云镜像
DEV 21.04.11
HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
EAS平台(32份配置文件):
- sdm625/626/660/636/82x/835
- sdm665/675/710/712/730/730g/750g/765/765g/768g/775
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+
- Helio G90T
【更新日志】
- 本次更新合并了10+个commit
- 新增:InputReader支持按键输入
- 修复:Exynos2100平台识别
- 修复:uxaffinity=2时主线程和渲染线程互相阻塞
- 改进:线程分类器使用二维规则表
- 改进:降低heavyload期间空负载时高频持续时长
- 改进:非操作时性能释放
- 改进:重负载带宽限制改用低优先级方案,小核集群利用率更高
- 改进:帧率切换的backdoor法idx范围改为0~19,适应刷新率idx众多的设备
- 改进:帧率切换临界区处理,降低帧率切换卡壳概率
- 改进:sfanalysis和ssanalysis通知方式改为异步
下载:
方法一:点击下方"Assets"中的uperf-dev-21.04.11.zip开始下载
方法二:蓝奏云镜像
DEV 21.04.04
HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
EAS平台(32份配置文件):
- sdm625/626/660/636/82x/835
- sdm665/675/710/712/730/730g/750g/765/765g/768g/775
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825/990/1080/2100
- dimensity720/800u/800/820/1000/1000l/1000+
- Helio G90T
【更新日志】
- 本次更新合并了30+个commit
- 新增:结合精简版系统perfd,显著降低高通平台应用冷启动等待时长
- 新增:屏幕刷新率切换提供Backdoor和PeakRefreshRate两种方法兼容更多平台,详见默认配置文件注释
- 新增:全面屏手势中屏幕刷新率规则自动套用默认规则,改进从固定低刷新率APP切换到桌面时帧率切换滞后
- 新增:改进的的高通平台DDR调频限制方案,高频内存功耗表现更佳
- 新增:增加Exynos 990/1080/2100配置文件
- 修复:屏幕刷新率从touch离开的延时与帧率值绑定,导致系统刷新率idx顺序相反时切换滞后
- 修复:pin_proc_on_xxx系列函数错误固定线程到foreground组由于uperf限制,导致大掉帧和相机启动缓慢
- 修复:com.android.providers.media固定在小核,导致应用访问sdcard太慢
- 修复:webview相关线程放置不正确,导致应用渲染H5内容掉帧
- 修复:应用内RPC线程放置不正确,导致应用内部分界面掉帧
- 修复:Uperf延时状态切换任务异常
- 修复:SsAnim超时退出机制失效
- 改进:默认关闭loadmonitor,由SsAnim和精简版系统perfd替代
- 改进:去除不再使用的GPU参数设置
- 改进:尽量缩短SsAnim时长,不损失过渡动画流畅度的前提下
- 改进:SfBoost仅在保持触摸一段时间后才可进入,避免简单滑屏也能进入SfBoost导致耗电
- 改进:应用高资源消耗但是非关键的线程识别
- 改进:启动器白名单增加更多系统和第三方桌面
下载:
方法一:点击下方"Assets"中的uperf-dev-21.04.04.zip开始下载
方法二:蓝奏云镜像
DEV 21.03.14
HMP平台(15份配置文件):
- sdm615/616/650/652/625/626/660/636/82x/835
- exynos7420/8890/8895
EAS平台(29份配置文件):
- sdm625/626/660/636/82x/835
- sdm665/675/710/712/730/730g/750g/765/765g/768g/775
- sdm845/855/855+/865/865+/870/888
- exynos8890/8895/9810/9820/9825
- dimensity720/800u/800/820/1000/1000l/1000+
- Helio G90T
【测试重点】
- 检查本模块是否能够正常安装和运行
- 检查使用时的频率选择,体验流畅度和能耗
- 动态高刷完成配置才可启用,配置文件位于/sdcard/yc/uperf/cfg_uperf_display.txt
【更新日志】
- 本次更新合并了30+个commit
- 新增:SfBoost游戏操作时专用SfLag,非掉帧时降低最大性能改进能耗比,掉帧时释放最大性能降低停顿时长
- 新增:自定义配置与日志目录迁移到/sdcard/yc/uperf/,弃用panel文件,开放cfg_uperf.json供用户自定义,如调整频率范围
- 新增:屏幕刷新率切换改用surfaceflinger backdoor法,兼容Android 10+
- 新增:高通平台c-state设置,避免过早进入c3很快再次唤醒引入0.5ms滞后
- 新增:高通平台动态force_no_nap,减少复杂过渡动画GPU引入的卡顿
- 修复:android.hardware.power由于空白配置文件格式错误崩溃,导致部分设备循环重启
- 修复:min_refresh_rate设置未清理,导致模块卸载后帧率被锁定为最大值
- 修复:非magisk安装方式运行后没有停用系统perfhal
- 修复:音频编码线程被固定在小核,导致视频录制破音
- 修复:费电模式安兔兔跑分超大核空载,导致跑分偏低
- 修复:由于屏幕刷新率切换通知到系统框架,导致SsAnim错误拉起耗电,即使没有系统动画发生
- 修复:顶层应用离开顶层后没有触发当前顶层应用检查,导致帧率切换未响应
- 修复:sfanalysis渲染状态检测为了匹配动态刷新率灵敏度过低,影响到掉帧检测
- 改进:动态屏幕刷新率降低前延迟降低到600ms,切换响应更快
- 改进:sfanalysis用户内容刷新率自适应响应更快,60hz->120hz检测延迟从350ms降低到200ms
- 改进:禁用高通perfhal采用空白targetconfig.json法
- 改进:指纹识别线程更容易放置到超大核
- 改进:APP主线程识别准确度
下载:
方法一:点击下方"Assets"中的uperf-dev-21.03.14.zip开始下载
方法二:蓝奏云镜像