首页»版块 › MagicOS › MagicOS ›视口级资源调度:让资源跟着用户的手指走

视口级资源调度:让资源跟着用户的手指走

[复制帖子标题和链接]

4891

数码爱好者  LV8  发表于 3 天前 江苏 来自:荣耀Magic7 Pro


一句话建议:
蜂鸟超感知调度已经实现了系统侧的页面级资源倾斜。本建议在此基础上,聚焦两个它还没覆盖的缺口:一是推动应用在页面不可见时主动停止定时器、动画循环等系统管不了的工作;二是把调度粒度从“页面级”推进到“视口级”——用户滑到哪,资源就跟到哪。

一、蜂鸟已经做了什么
蜂鸟超感知调度引擎已经能识别用户当前正在交互的页面,并把CPU、GPU、网络资源向这个页面倾斜。系统侧“少给不可见页面资源”这件事,已经做到了。

二、还没做到的两个缺口

缺口一:系统管不了应用内部的定时器和动画循环
系统能降低不可见页面的调度优先级,但没法强制应用停止内部的setInterval、requestAnimationFrame、后台轮询。只要应用不主动停,这些工作就会持续触发,持续消耗资源。华为开发者文档已明确要求应用在页面不可见时必须主动停止动画和定时器,说明系统侧确实管不了。

缺口二:页面级粒度不够细
一个长页面可能有十几屏内容。用户只看到其中一屏,但整个页面都在占用资源。系统目前只能做到“这个页面可见,给它资源”,做不到“用户看到哪一屏,就给哪一屏资源”。

三、方案:视口级资源调度

1. 系统侧:感知滚动,下发信号

· 识别用户滚动状态:快速滑动、慢速滑动、滚动停止。
· 识别系统资源压力:正常、紧张、极限。
· 通过应用资源调度服务(Scheduling Kit),向应用下发滚动状态信号和资源压力信号。

2. 应用侧:根据信号,动态调整

· 可见区块:保持渲染、保持刷新。
· 即将进入视口的区块:预加载、预渲染。
· 已滑出视口的区块:暂停动画、停止定时器、释放纹理。
· 远离视口的区块:完全冻结,释放资源。

3. 资源压力联动

· 资源紧张时:应用减少预加载,优先保证当前视口流畅。
· 资源充足时:应用正常预加载,保证滚动不白屏。

四、和蜂鸟的关系
不是替代,是补全:

· 蜂鸟管“系统给哪个页面资源”。
· 本建议管“应用内部怎么分配这些资源”和“资源跟着视口走”。
· 两者配合,从“页面级倾斜”升级到“视口级精细分配”。

五、预期效果

· 长页面滚动更跟手,当前视口响应更快。
· 不可见区块不再偷跑动画和定时器,功耗降低。
· 资源紧张时优先保当前视口,减少卡顿。
@HONOR2608234508028 @MagicOS流畅橙子 @性能_阿勇 @MagicOS流畅李同学
建议投票
17 人已参与
94%支持
6%反对
评论1
MagicOS流畅李同学 MagicOS产品经理  发表于 7 小时前 属地未知 来自:浏览器
楼主好,您的建议已记录,后续反馈工程师评估优化。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表