当前位置: 首页 > article >正文

总结下android性能提升方案

android 资源调度流程,大同小异,具体资源可以看 init.rc里面的配置文件

1 kenel层直接调度,直接对进程对应的名字进行比如cpu分配和设置进程优先级为fifo,cpuweight等,可以设置更多,更细致的参数
对应的驱动节点:proc/mysched/scene,proc/mysched/uid,proc/mysched/key_tasks
2 上层实现
     init.rc里面配置(cgroup.json 文件里配置的补充):这里主要配置cpuset ,stune,blkio,memory,在这里新增对应的子目录
   libprocessgroup/profiles/task_profiles.json :详细子系统参数的配置在这里
2.1 举例以上两个文件里创建自定义的目录并配置对应的参数比如:mycupset
2.2 通过jni提供给java层设置进去对应的app进程号
    android_util_process.cpp里面setthreadgroupandcupset 里面设进去对应的cupset(需要添加对应的索引等等)
    或者直接增加个接口写死cupset对应的目录值。    
2.3 framwork base server下面搞一个封装类,主要是对process.java里面对调度接口进一步的封装
    对setthreadscheduler 设置哪一类的优先级的封装,对cupset的设置的封装,以及配套的自定义cpuset对应的
    核也要写进去,高优先级 就写大核对应的cpu id,低优先级就写小核的。(最好设两个自定义cpuset,一个高,一个低,这样就不用动态调整核数了)

比如 往/dev/cpuset/myboost/cpus 写 1-3 意思就是cpu1,cpu2,cpu3
2.4 再增加一些流程逻辑,比如只增强20秒,20秒后再还原回去    
2.5 atms,oomadjuster 的调度行为需要屏蔽我们自定义的调用,最好 process里面对接口统一过滤,就是系统那一套如果遇到我们自定义的这一套,需要跳过

2.6 提供三方对应功能的接口,这个一般不会开放出此接口,暂不实现。


http://www.kler.cn/a/321942.html

相关文章:

  • 替代TPS7A11超高PRSS低噪声低静态低压差稳压器LDO
  • 传奇微端黑屏不更新地图?传奇微端架设教程——GOM引擎
  • matlab恢复默认窗口布局
  • 大模型分布式训练并行技术(七)-自动并行
  • Vue入门之生命周期
  • 计算机网络回顾
  • 数据分析入门
  • STM32精确控制步进电机
  • DK5V100R10VL贴片TO252功率12V4.3A同步整流芯片
  • 1.快速排序算法【分治】
  • python面向对象三大特性
  • 避免glibc版本而报错,CentOS等Linux安装node.js完美方法
  • 如何使用Optuna在PyTorch中进行超参数优化
  • 基于双向 LSTM 和 CRF 的序列标注模型
  • Unity C# 网络学习—WWWForm
  • WPS中让两列数据合并的方法
  • 计算机性能指标之CPU执行时间
  • 揭秘 Elasticsearch 集群架构,解锁大数据处理神器
  • 算法: 滑动窗口题目练习
  • 搬砖5、Python构造程序逻辑