android 性能调整方案总结

一 adb方式调整


添加分组来调整对应的优先级:
查看分组信息:/dev/cpuset

要绑定到大核就需要先解决限制的问题
把surfaceflinger echo到forground组,forground的cpus是0-7,涵盖所有核
echo 919 > /dev/cpuset/foreground/tasks // 919对于的进程号
然后 绑定到大核指令
taskset -p f0 919


二 增加一个系统服务来检测不同的场景

根据场景来动态调整cpu的调度策略(eg:关闭自动调整策略,打开指定的cpu)
通过文件读写 /proc/hps/enabled 写入0(代表关闭多核自动设置)
/proc/cpufreq/cpufreq_oppidx 写入5(5hz)//cpu频率
/sys/devices/system/cpu/cpu*/online写入0(代表关闭)//第*个cpu


三 构建一个白名单


进程启动时候 检查并指定进程组,task组。并为其分配指定的cpu index(kenel层,但改动在framwork层)
对其进程或进程组的优先级进行定制化调整。(framwork层)
四 查看效果,需要看具体的cpu利用率: cat /proc/stat
user nice system idle iowait irq softirq stealstolen guest
主要看第四个参数 idle 就是空闲情况/总时间,这个差值的比例就是使用率
可以看下这个值 有没有改善。


五 app端调整策略


一个app内主线程可以认为对应着一个linux进程,调整进程的优先级,即是调整主线程
的优先级,而子线程则除非开发者调整,系统不会改变子线程的优先级,但子线程
所在的进程组会随着进程变化而变化。主线程的优先级会随着状态的变化被系统动态调整(oom_score_adj、procState、schedGroup 前后台等)子线程的优先级的设定也会抢占到主线程,不易过高。

参考链接
https://blog.csdn.net/gary_qing/article/details/134748313?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-134748313-blog-123816297.235^v43^pc_blog_bottom_relevance_base9&spm=1001.2101.3001.4242.1&utm_relevant_index=1

https://blog.csdn.net/zengrunxiu/article/details/80840208?ops_request_misc=&request_id=&biz_id=102&utm_term=android%20cpu%E5%A4%A7%E5%B0%8F%E6%A0%B8%E5%88%87%E6%8D%A2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-80840208.142^v100^pc_search_result_base4&spm=1018.2226.3001.4449

https://blog.csdn.net/zengrunxiu/article/details/80928986?spm=1001.2014.3001.5502

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值