开发者可以根据不同的性能问题场景,选择对应模式的分析任务,借助 Dev Profiler 对应用或元服务进行更深入的性能分析与问题定位。
调优场景
•Frame:主要用于深度分析应用或元服务出现卡顿、掉帧、丢帧的原因。
•Launch:主要用于分析应用或元服务的启动耗时,评估启动周期各阶段的时间消耗、核心线程运行状态等,帮助开发者快速识别启动性能瓶颈。
•Snapshot:支持多次采集 ArkTS 堆内存快照,可分析单个内存快照,也可对比多个内存快照之间的差异,用于定位 ArkTS 内存问题。
•Allocation:主要用于分析应用或元服务的内存资源占用情况,可深度采集内存相关数据,直观展示不同分类的内存变化趋势,并提供内存实例分配的调用栈记录,便于进一步排查内存问题。
•ArkUI:主要用于定位由组件耗时、页面布局、状态变量更新等因素引起的界面卡顿问题。
•ComMemory:主要用于定位 UI 组件的内存占用情况。
•Energy:主要用于分析应用或元服务的能耗异常问题。
•ArkWeb:主要用于定位 Web 应用加载缓慢以及丢帧等性能问题。
•Network: 主要用于定位 HTTP 协议栈的网络信息诊断问题,并用于分析网络请求各分段的耗时情况。
•Concurrency:主要用于展示并行并发应用的实际运行状态,帮助开发者优化并行并发代码执行效果。
•GPU:主要用于识别 GPU 利用率偏低,以及执行图形和计算工作负载时性能瓶颈的根本原因。
•Time:主要用于分析函数执行效率,可深度录制函数调用栈、每帧耗时等运行数据,并完整展示 ArkTS 到 Native 的跨语言调用栈,支撑 Native API 典型性能问题分析。
•CPU:通过深度采集 CPU 内核相关数据,直观展示当前所选调优应用或元服务进程的 CPU 使用率、各核心时间片调度信息、各核心频率信息、各核心利用率、系统各进程 CPU 使用情况、线程状态以及 Trace 信息等。
操作步骤
打开 DevEco Profiler,选择场景模板并创建会话。
在设备列表中选择目标设备。
在进程列表中选择需要调测的应用(既可以是正在运行的应用,也可以是已安装但尚未启动的应用)。
在主界面的新建任务区域,单击要创建的场景调优分析任务类型,然后单击“Create Session”。
2. 配置并确认会话环境。在录制详情区域,工具控制栏中提供了多个小图标,鼠标悬停后会显示相应功能提示,可按需添加录制选项。各泳道区域也提供下拉框选项,通过选择不同设置可以调整录制功能。支持在录制前单击

指定需要录制的泳道。

3. 启动录制并复现性能劣化场景。
单击任务窗口左上角的

或左侧任务列表中的

启动录制后,在调优设备上操作 APP,执行需要验证的步骤,并等待任务状态由“initializing”切换为“recording”。录制期间,整个 DevEcoProfiler 无法再点击其他模板继续操作;如果还需要录制其他模板,则必须先结束当前录制,再重新选择模板开始新的分析任务。

4. 当性能劣化场景复现完成后,停止录制。
单击停止按钮

进入数据解析阶段,泳道任务状态会由“analyzing”切换为“rendering”,当状态变更完成后即表示解析结束,右侧调优详情区域将显示具体的性能调优内容。由于解析过程可能包含大量数据,请耐心等待处理完成。
说明:如果录制结束后,ArkTSCallstack、Callstack、All Heap & Anonymous VM、All Heap、All Anonymous VM、ArkTSAllocation 等泳道均显示 No Data,那么可以将光标悬停在泳道名称处的三角告警图标上,直接查看该泳道报错的具体原因。

通过本文,你已经了解如何进行深度录制并抓取 trace 文件。下一步我们还将介绍更多性能分析基础知识,帮助开发者进一步熟悉性能分析流程与调优方法。
官网开发者学堂视频:https://developer.huawei.com/consumer/cn/training/result?type2List=201783644516849879&orderBy=1&courseType=5

社区 DFX 专题文章: https://developer.huawei.com/consumer/cn/forum/subject/2101218731402391001


【扫码加入 HarmonyOS DFX 技术交流群】
