如何用DevEco Profiler的录制功能对性能问题进行深度分析和定位
开发者可针对不同的性能问题场景选择不同模式的分析任务,利用Dev Profiler对应用/元服务进行深度分析。

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看:
如何用DevEco Profiler的录制功能对性能问题进行深度分析和定位-华为开发者话题 | 华为开发者联盟
开发者可针对不同的性能问题场景选择不同模式的分析任务,利用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各核心时间片调度信息、CPU各核心频率信息、CPU各核心使用率信息、系统各进程的CPU使用情况、线程状态及Trace信息等。
操作步骤
1. 打开DevEco Profiler,选择场景模板,创建会话。
• :在设备列表中选择设备。
• :在进程列表中选择要调测的应用(可以是正在运行的应用,也可以是已安装但未启动的应用)。
• :在主界面的新建任务区域,单击要创建的场景调优分析任务类型,并单击“Create Session”。
2. 配置并确认会话环境。在录制详情区域,工具控制栏上有很多小图标,鼠标放上去会有一些功能提示,可以添加一些录制选项,各泳道区域也有下拉框选项,下拉选择不同的设置可以调整录制功能。支持在录制前单击
指定要录制的泳道。

3. 启动录制,复现性能劣化场景。
单击任务窗口左上角的
或左侧的任务列表中的
,启动录制。在调优设备操作APP,执行要验证的操作,等待任务状态由“initializing”变为“recording”。录制过程中整个DevEco Profiler不能再点击其他的模板进行操作,如果想录制其他模板可以结束本次录制重新选择其他模板开始录制。

4. 性能劣化场景完成,停止录制。
单击停止按钮
,进入数据解析阶段,泳道任务状态由“analyzing”变为“rendering”时解析结束,右侧调优详情区域显示具体调优内容。解析过程可能包含大量的数据,请耐心等待解析完成。
说明:若录制结束后,ArkTS Callstack、Callstack、All Heap & Anonymous VM、All Heap、All Anonymous VM、ArkTS Allocation等泳道显示No Data,在泳道名称处可将光标悬浮于三角告警图标处,查看泳道报错的原因。

通过本文你已经学会了如何深度录制,抓取trace文件,下一步我们将介绍更多其他性能分析基础知识,方便开发者了解性能分析流程。
本文由 @华为开发者联盟 授权发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务
- 目前还没评论,等你发挥!

起点课堂会员权益



