- 下载图片
- 复制图片
Ena
关于ColorOS线程放置的一点浅表研究···
以下是我的结论:
OIFACE机制推测:
作用:针对性优化某些应用(此处只讨论其线程放置功能)(以下将被OIFACE机制针对性优化的应用简称为OIFACE应用)
机制原理:阻止MINITOP分配OIFACE应用线程可用的CPU核心,然后通过厂商自定义调度器(Schedassist)将OIFACE应用的线程放置在OIFACE组(在/dev/cpuset/)以动态控制其各种参数(包含可用CPU核心)
OIFACE机制构成:oiface进程 oiface配置 COSA内oiface组件(在高版本COSA此组件与实时检测游戏场景到GameEvent组件融合,从而更好地调控游戏线程)
一些发现:在ReameUI4.0.400,厂商自定义调度器失效
从这些结论,应该能提取出彻底处理coloros线程放置冲突的办法
另外,
前置认知:
一个应用由多个进程组成,而进程是环境,容纳了干实事的线程
Android系统(本体是Linux系统)会实时检测应用的进程所处场景并按其所处[场景]分[组]管理
[场景]:系统后台 后台 前台:一般表现为显示于屏幕 顶台:处于前台且正被操纵 等等
[组]:容纳线程/进程的容器,与[场景]一一对应,内设需要遵守的参数,如可用CPU核心、内存参数(位于/dev/cpuset)
区分:[线程放置≠核心分配]
线程放置:将线程归于某[组]以控制其可使用的CPU核心与内存参数等(例:asoul 系统分组 oiface)
核心分配:直接控制线程可使用的CPU核心(例:scene的核心分配 minitop)
以下是我的结论:
OIFACE机制推测:
作用:针对性优化某些应用(此处只讨论其线程放置功能)(以下将被OIFACE机制针对性优化的应用简称为OIFACE应用)
机制原理:阻止MINITOP分配OIFACE应用线程可用的CPU核心,然后通过厂商自定义调度器(Schedassist)将OIFACE应用的线程放置在OIFACE组(在/dev/cpuset/)以动态控制其各种参数(包含可用CPU核心)
OIFACE机制构成:oiface进程 oiface配置 COSA内oiface组件(在高版本COSA此组件与实时检测游戏场景到GameEvent组件融合,从而更好地调控游戏线程)
一些发现:在ReameUI4.0.400,厂商自定义调度器失效
从这些结论,应该能提取出彻底处理coloros线程放置冲突的办法
另外,
前置认知:
一个应用由多个进程组成,而进程是环境,容纳了干实事的线程
Android系统(本体是Linux系统)会实时检测应用的进程所处场景并按其所处[场景]分[组]管理
[场景]:系统后台 后台 前台:一般表现为显示于屏幕 顶台:处于前台且正被操纵 等等
[组]:容纳线程/进程的容器,与[场景]一一对应,内设需要遵守的参数,如可用CPU核心、内存参数(位于/dev/cpuset)
区分:[线程放置≠核心分配]
线程放置:将线程归于某[组]以控制其可使用的CPU核心与内存参数等(例:asoul 系统分组 oiface)
核心分配:直接控制线程可使用的CPU核心(例:scene的核心分配 minitop)
2024-11-08
浏览3867
登录后评论
31
26
8