相关问题
冷启动加载耗时长,应用在设备上冷启动打开加载完成耗时XXXXms
1059浏览 • 1回复 待解决
#鸿蒙学习大百科#如何定位应用冷启动缓慢的问题?
241浏览 • 1回复 待解决
HarmonyOS Push点击冷启动跳转问题
427浏览 • 1回复 待解决
关于启动慢问题首帧卡顿分析
401浏览 • 1回复 待解决
冷启动首帧完成时延问题分析
401浏览 • 1回复 待解决
冷启动报错Error message
2114浏览 • 1回复 待解决
冷启动加载完成时延(离手帧为起始点)
769浏览 • 1回复 待解决
如何提升应用冷启动速度?
475浏览 • 1回复 待解决
HarmonyOS 如何统计应用冷启动耗时
412浏览 • 1回复 待解决
HarmonyOS冷启动相关性能分析
357浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何应对冷启动响应时延超标导致的应用启动卡顿问题?
132浏览 • 1回复 待解决
HarmonyOS 设置冷启动的背景图
388浏览 • 1回复 待解决
#鸿蒙通关秘籍#问题场景冷启动响应时延如何进行Trace抓取?
107浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何优化HarmonyOS NEXT冷启动响应时延超标的问题?
124浏览 • 1回复 待解决
UIAbility的冷启动过程是怎样的?
644浏览 • 1回复 待解决
HarmonyOS hiappevent订阅的启动耗时事件中的冷启动、热启动详细的概念是什么?
142浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何提升鸿蒙应用冷启动速度?
76浏览 • 1回复 待解决
冷启动性能指标起止点查找方法
834浏览 • 1回复 待解决
怎么限制 mysql 慢查询慢查询日志大小?
3382浏览 • 1回复 待解决
#鸿蒙学习大百科#什么是应用的冷启动和热启动?
402浏览 • 1回复 待解决
HarmonyOS 路由切换页面过渡慢问题
333浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何通过优化启动页图标来提升鸿蒙应用的冷启动速度?
48浏览 • 0回复 待解决
HarmonyOS 如何自定义App冷启动的闪屏页
847浏览 • 1回复 待解决
HarmonyOS app冷启动时间统计包括欢迎页面的时长吗?
5浏览 • 1回复 待解决
#鸿蒙学习大百科#如何提升应用冷启动的速度?
323浏览 • 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个阶段。