目录

ASCF元服务冷启动慢

问题现象:

首次打开元服务或长时间未使用后重新打开元服务时,从点击图标到元服务主页面完全加载出来的时间过长,期间可能显示空白屏幕或加载动画。

背景知识:

ASCF冷启动Trace打点说明:

借助DevEco Profiler抓取ASCF元服务冷启动过程的Trace数据,根据下表中ASCF框架提供的Trace关键字,定位各阶段耗时情况。

下表列出ASCF框架在冷启动流程中埋设的所有Trace打点,按执行顺序排列:

Trace关键字 所属阶段 说明
H:StageCreate 运行环境准备 元服务AscfAbilityStage启动整体耗时,包含解析配置、初始化JSVM引擎等。
H:UIAbilityCreate 运行环境准备 元服务AscfUIAbility启动整体耗时,包含窗口信息初始化、启动参数加载等。
H:MainPageAppear 运行环境准备 AscfMainPage创建整体耗时,包含UI上下文初始化、API注册、系统组件创建等。
H:LaunchMiniApp 逻辑层代码注入 元服务app.js加载和执行的整体耗时,从启动加载到加载完成。
H:AscfRenderPageAppear 视图层代码注入 AscfRenderPage耗时,包含子包加载、页面配置信息读取等。
H:NewPageRender 视图层代码注入 路由到新页面渲染耗时,包含页面生成、NavDestination渲染等。
H:WebPageLoad 页面渲染 从视图层代码注入到首页渲染的整体耗时。
H:JSVM_Exe_Code 运行时 逻辑层JS代码执行耗时,包含所有业务逻辑执行、API调用回调、页面生命周期回调等。

问题定位:

  1. 使用DevEco Profiler的Launch分析抓取ASCF元服务冷启动过程的Trace数据。

  2. 在Trace数据中搜索上表中的Trace关键字,查看各阶段耗时。

  3. 根据耗时较长的Trace打点,对照详细说明定位具体原因:

    • 逻辑层代码注入阶段耗时:查看H:LaunchMiniApp阶段耗时,分析逻辑层代码注入和执行耗时。

    • 视图层代码注入阶段耗时:查看H:AscfRenderPageAppear结束节点到H:WebPageLoad开始节点期间的整体耗时,分析视图层代码页面结构和样式信息加载耗时。

    • 页面渲染阶段耗时:查看H:WebPageLoad持续阶段耗时,分析页面根据页面结构和页面数据完成渲染的耗时。

    • 运行时逻辑耗时:查看H:JSVM_Exe_Code耗时,分析逻辑层JS执行是否阻塞了数据更新。

分析结论:

ASCF元服务冷启动慢的常见原因有:

修改建议: