鸿蒙性能优化:启动速度

性能优化中,启动速度是衡量用户体验的重要指标。DevEco Profiler的Launch场景分析能力,可以录制启动过程中的关键数据,识别导致启动缓慢的原因。

一、功能介绍

1.1 支持的泳道

Launch模板支持的泳道包括:

泳道 说明
Launch 启动过程各阶段耗时(本文重点)
Frame 帧率分析
ArkTS Callstack ArkTS调用栈分析
Callstack Native调用栈分析
Network Traffic 网络流量
Network Request 网络请求
CPU Core CPU核心调度
Process 进程分析

1.2 启动模式

模式 说明
自动启动 开始录制时自动重启所选应用
手动启动 开始录制时自动终止应用,需开发者手动启动应用

限制:不支持命令拉起的Release应用,不能进行Launch分析。锁屏状态下可进行Launch录制。

二、查看启动过程中各阶段的耗时情况

2.1 基本操作

框选Launch泳道图区域的一个阶段或多个阶段,在下方的Details区域中可查看所选阶段的耗时统计情况。

2.2 任务耗时详情

展开各阶段的统计信息折叠表,可以看到各个任务的具体耗时信息。单击跳转按钮,可直接跳转至相关线程打点任务中。

2.3 Load ETS Files(DevEco Studio 6.0.0 Beta1+)

支持查看冷启动过程中ets文件的加载情况:

字段 说明
Category 该ets文件在应用启动过程中是否被使用
Weight 该ets文件加载子节点文件(不包括自身)的总耗时
Self 该ets文件自身加载的耗时
Import Count 该ets文件被其他文件导入的次数
File Name 该ets文件的名称
Path 该ets文件构建产物的路径

2.4 TOP Redundant

查看冷启动过程中TOP 100冗余ETS加载文件信息。若File Name字段显示为蓝色,双击可快速跳转至对应工程源文件。

注意:已上架应用市场的应用,不支持使用Load ETS Files或TOP Redundant页签查看冷启动过程中ETS文件的加载情况。

三、分析静态资源库加载耗时

3.1 Static Initialization子泳道

展开Launch泳道,其中的Static Initialization子泳道展示启动过程中各静态资源库的加载耗时。

3.2 操作方式

单击单个静态资源库色块,或框选多个静态资源库色块,下方的Details区域展示所选对象的耗时统计信息。

针对耗时超过预期的加载任务,可单击跳转按钮,跳转至相关线程打点任务中进行深度分析。

四、查看核心线程在CPU Core的运行情况

4.1 Running CPU Cores子泳道

展开Launch泳道,其中的Running CPU Cores子泳道展示启动过程中的关键线程具体运行在哪个CPU核心。

4.2 操作方式

单击单个进程色块或框选多个进程色块,下方的Details区域展示所选对象的运行情况统计信息。

单击CPU的跳转按钮,可跳转到CPU Core泳道查看详细的调度信息。

五、查看启动过程相关的线程Trace数据

5.1 关键线程数据

展开Launch泳道,除Static Initialization和Running CPU Cores子泳道外,还包含启动过程的关键线程的状态和Trace数据。

5.2 Details区域统计信息

区域 说明
Details 树状统计,显示任务名称、起始时间、耗时信息
Thread States 线程的状态统计信息
Thread Usage 线程的使用情况
Slice List 所选对象的切片统计信息
Load Statistics 所选对象的中载和重载信息

5.3 操作方式

单击单个切片色块或框选多个切片色块,可查看所选对象的详情。

鸿蒙Launch模板通过Launch泳道展示启动各阶段耗时,支持Load ETS Files(6.0.0 Beta1+)查看冷启动ETS加载和TOP 100冗余文件(双击蓝色文件名跳转源码),Static Initialization子泳道分析静态资源库加载耗时,Running CPU Cores子泳道查看线程所在CPU核心,Details区域展示耗时统计、线程状态、切片信息等,帮助识别启动瓶颈。

相关推荐
小雨青年7 小时前
【HarmonyOS 7 平行视界深度实战】06 页面路由、返回栈与多层跳转怎么处理
华为·harmonyos
2501_9197490312 小时前
华为鸿蒙免费刷题软件—小羊免费刷题
华为·harmonyos·鸿蒙
游戏智眼12 小时前
HarmonyOS 7 适配升级:NIM SDK 释放端侧 AI 与网络能力
人工智能·harmonyos
小溪学编程12 小时前
Java BufferedReader 详解:从基础用法到性能优化
java·python·性能优化
程序猿追14 小时前
react-native-elements 三方库鸿蒙版本适配与使用(MatePad Edge 双模式真机验证)
华为·harmonyos
lqj_本人14 小时前
白泽上手:给小鸿 SE 写一个温控风扇工程
harmonyos
贾伟康14 小时前
【口算王|12】HarmonyOS ArkTS 启动页实战:处理 Splash 到训练首页的稳定切换
harmonyos·arkts·启动优化·uiability·windowstage
万物智能信息科技16 小时前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
万物智能信息科技17 小时前
MIPI DSI屏幕输出—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
嵌入式硬件·华为·开源·harmonyos·鸿蒙
贾伟康17 小时前
【口算王|13】HarmonyOS ArkTS 应用启动链路实战:从 EntryAbility 到首屏加载保持窗口与路由稳定
harmonyos·arkts·arkui·应用启动·entryability