相关问题
冷启动加载耗时长,应用在设备上冷启动打开加载完成耗时XXXXms
1329浏览 • 1回复 待解决
#鸿蒙学习大百科#如何定位应用冷启动缓慢的问题?
474浏览 • 1回复 待解决
HarmonyOS 冷启动打卡首页笔记首次加载网络图片(无缓存)慢,不满足S标
196浏览 • 1回复 待解决
HarmonyOS Push点击冷启动跳转问题
615浏览 • 1回复 待解决
关于启动慢问题首帧卡顿分析
676浏览 • 1回复 待解决
HarmonyOS 冷启动中哪个params属性表示冷启动时长?
142浏览 • 1回复 待解决
冷启动首帧完成时延问题分析
614浏览 • 1回复 待解决
HarmonyOS CustomBuilder加载慢
199浏览 • 1回复 待解决
冷启动加载完成时延(离手帧为起始点)
1014浏览 • 1回复 待解决
冷启动报错Error message
2282浏览 • 1回复 待解决
如何提升应用冷启动速度?
762浏览 • 1回复 待解决
HarmonyOS 冷启动时启动页的实现
366浏览 • 1回复 待解决
HarmonyOS 如何监听应用冷启动
282浏览 • 1回复 待解决
Web加载失败问题定位定界指导
196浏览 • 1回复 待解决
HarmonyOS冷启动相关性能分析
630浏览 • 1回复 待解决
HarmonyOS 如何统计应用冷启动耗时
656浏览 • 1回复 待解决
HarmonyOS Profiler 工具分析 APP 冷启动
264浏览 • 1回复 待解决
HarmonyOS Web加载慢如何调优
95浏览 • 1回复 待解决
HarmonyOS 冷启动【响应时延】与【加载完成时延】在Profiler中如何查看?
654浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何应对冷启动响应时延超标导致的应用启动卡顿问题?
464浏览 • 1回复 待解决
HarmonyOS 设置冷启动的背景图
783浏览 • 1回复 待解决
HarmonyOS 预加载新特性只有首次安装才有预加载是吗? 因为后续每次冷启动数据都变了
97浏览 • 1回复 待解决
HarmonyOS web控件加载url速度慢
62浏览 • 1回复 待解决
UIAbility的冷启动过程是怎样的?
940浏览 • 1回复 待解决
#鸿蒙通关秘籍#问题场景冷启动响应时延如何进行Trace抓取?
367浏览 • 1回复 待解决
适用范围
应用或元服务冷启动过程最大连续丢帧数 > 0帧
1 排查
1.1 Launch场景录制
1. 在Profiler界面左侧选中测试应用,左下角选中Launch图标,点击Create Session;
2. 点击Launch任务的开始按钮,Profiler会自动杀掉应用进程并重新拉起新进程回放冷启动过程;
1. 应用启动成功,所有占位符都加载完成就可以停止录制。
1.2 看Frame泳道
1. 选中右侧数据展示区的
Frame泳道,看丢帧次数(Jank Count)和最大连续丢帧次数(Max Consecutive Jank Count),以下图为例:render_service(ArkUI渲染服务)丢帧18次,最大连续丢帧3次;桌面应用(ohos.sceneboard)丢帧4次,最大连续丢帧2次;应用(m.kugou.hmmusic)丢帧5次,最大连续丢帧2次
2. 双击render_service行,在FrameList视图中,逐行点击,看render_service丢帧是自已引起的,还是由于其他应用丢帧引起的,如下图所示:render_service的丢帧与应用有关
1.3 看ArkTS Callstack泳道
2.2章节步骤2排查之后,会存在两种情况:
1.3.1丢帧与应用有关
如果在存在大量render_service丢帧与应用有关,
1. 回到Statistics视图,双击应用行,在FrameList视图中,优先排查耗时最长的这一帧。点击右侧的跳转图标
2. 再继续点击跳转
3. 跳转完成后会直接定位到卡顿帧位置,左侧的白线是期望开始时间,右侧的白线是期望结束时间,如下图所示:m.kugou.hmmusic帧实际耗时超过了期望耗时,m.kugou.hmmusic进程处理完成后,把数据传给了render_service进程(用一根箭头指向render_service帧表示),同时引起了render_service丢帧。
4. 在泳道上拖动鼠标左键,选中这一帧的时间区间,点击ArkTS Callstack泳道,可以看到代码执行耗时
initialRenderView 表示页面初始化
(program) 代表程序执行进入纯native代码阶段,该阶段无JS代码执行,也无JS调用native或者native调用JS情况(需要切换到Native Callstack泳道看具体的调用栈信息,一般很难通过这里分析出有效的信息)。
rerender 主要发生在页面更新的场景
(BUILTIN) 表示JS标准库接口,Native实现,虚拟机提
5.优先分析耗时最长的调用栈(program除外),逐级展开,双击(ARKUI_ENGINE)行可以直接跳转到源码文件,很方便分析具体是哪里引起了耗时长
1.3.2 render_service丢帧与应用无关
丢帧图形一般是这种形状:没有箭头指向render_service卡顿帧,并且render_service帧实际耗时超过了期望耗时
2 定界
2.1 render_service丢帧与应用无关
这种场景一般是由系统导致,需要系统侧排查
2.2 组件的build时间过长引起了丢帧
3 解决
冷启动的过程大致可分成下面四个阶段:应用进程创建和初始化、App和Ability的初始化、Ability生命周期、加载绘制首页,因此解决冷启动过程中产生的性能问题,主要也是围绕这4个阶段。