当前位置: 首页 > news >正文

如何用DevEco 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文件,下一步我们将介绍更多其他性能分析基础知识,方便开发者了解性能分析流程。

---------------------------------------------------------------------------------------------------------

🔗官网开发者学堂视频:华为开发者学堂

🔗社区DFX专题文章:华为开发者问答 | 华为开发者联盟

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

http://www.jsqmd.com/news/1306542/

相关文章:

  • SpringBoot+Vue旅游数据分析系统架构与Hive优化实践
  • 程序员连续工作八年后,能不能 Gap 一年?
  • 终极免费解锁Wand专业版:5分钟移除2小时限制的完整指南
  • Python自动化神器pynput:从键盘鼠标监听控制到实战应用
  • Seraphine:基于LCU API的英雄联盟智能助手,实现游戏效率革命与数据驱动决策
  • C++异常处理:解决terminate called after throwing an instance of ‘char const*‘错误
  • 计算机毕业设计之宠物商城系统设计与实现
  • 广州工商异常解除公司口碑好推荐测评:本地机构横向对比与选择指南 - GrowUME
  • AI如何接管并发控制?深度解析LLM驱动的自动线程调度与锁优化(2024最新工业实践)
  • 游戏开发中浮点误差与坐标漂移:EPS阈值原理与实战解决方案
  • Spring Boot集成Dubbo 3.x:从单体到微服务的RPC实战指南
  • 【MySQL】 索引、联合索引以及大数据量分批查询问题总结
  • 终极指南:如何使用DiscreteDeviceAssigner轻松实现Hyper-V设备直通
  • 昇腾平台融合算子 dequant_swiglu_quant 的设计与实现
  • LinkSwift:面向开发者的网盘直链解析架构深度解析与最佳实践
  • 腾讯云TDMQ消息队列实战:核心模型选型、最佳实践与运维指南
  • 高中生综评不重要?多元升学全靠优质成长档案
  • 抖音批量下载神器:5分钟实现无水印视频完整备份的终极指南
  • Adobe-GenP 3.0:3分钟免费激活Adobe全家桶的终极完整指南
  • 沧州市清奢黄金回收,黄金回收,卖黄金警惕损耗费,本店不扣损耗 - 新芸鼎珠宝首饰
  • 综评只是给学生增加负担?读懂育人本质轻松应对
  • 3步掌握GeoJSON在线编辑:从零开始构建专业级地理数据可视化
  • CNN-GRU混合模型在时序数据分类中的Matlab实现与对比
  • 大气层整合包系统:为Nintendo Switch开启全新可能的技术架构
  • 180天无忧激活:KMS_VL_ALL_AIO让你的Windows和Office重获新生
  • KMS智能激活工具终极指南:5分钟免费搞定Windows和Office永久激活
  • 网盘直链下载助手:告别客户端束缚,浏览器一键获取九大网盘真实下载链接
  • Numpy核心概念与高效数组操作全解析:从ndarray到向量化运算
  • 终极指南:如何用KMS_VL_ALL_AIO脚本5分钟搞定Windows和Office永久激活
  • 苏州吴中注册公司专业推荐