鸿蒙性能优化:启动速度

性能优化中,启动速度是衡量用户体验的重要指标。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区域展示耗时统计、线程状态、切片信息等,帮助识别启动瓶颈。

相关推荐
匠云创新9 小时前
读完一万段要两分钟:我们把标书读取从 WPS 对象模型搬到了 docx 解析
性能优化·node.js
贾伟康12 小时前
HarmonyOS API 26 嵌套 Navigation:getParent、父子栈边界与返回分发
harmonyos·arkts·navigation·嵌套路由·navpathstack
行者-全栈开发13 小时前
【鸿蒙心迹】多线程并发实战——TaskPool 与 Worker 选型与踩坑(HarmonyOS 7.x)
华为·harmonyos·多线程并发·worker·taskpool·线程通信·harmonyos 并发
打工仔折腾 AI14 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
OH_TPC15 小时前
@ohos/aki 源码解读(一):一行绑定背后,宏、模板与索引分发
harmonyos
贾伟康15 小时前
【解压时刻|13】HarmonyOS ArkTS 启动链路审计:从 EntryAbility、AppStore 到 Navigation 首屏
harmonyos·arkts·appstorage·应用启动·entryability
贾伟康16 小时前
【古诗词闯关|12】HarmonyOS ArkTS 单页组件拆分实战:降低题库、闯关与结果弹层耦合
harmonyos·arkts·状态管理·arkui·组件化
威哥爱编程18 小时前
模拟面试智能体开发实战 07:答完一题就点评一题,结构化输出给分建议,让每道题都变成复盘
python·agent·harmonyos
威哥爱编程19 小时前
模拟面试智能体开发实战 08:总评报告先过三道闸,防泄题防夸大防错建议,才敢发到候选人手上
python·agent·harmonyos
熊猫钓鱼>_>1 天前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos