讨论广场 问答详情
DevEco Profiler调优工具能力全集一览
HarmonyOS码上奇行 2024-06-14 11:07:50
16 评论 分享

如题

16 评论 分享
写回答
全部评论(1)

优化应用的性能是一个持续的过程,在应用开发过程中需要不断地发现性能瓶颈、定位性能问题、修复并验证优化措施的可行性,直到应用满足其性能指标。为方便定位以及解决性能问题,DevEco Studio提供DevEco Profiler性能调优工具,支持开发者从分析函数耗时、内存泄漏、应用卡顿丢帧等场景进行深度调优。

开发者可以在DevEco Studio顶部菜单栏中选择“View -> Tool Windows -> Profiler”;或者在底部工具栏中直接单击“Profiler”,快速体验HarmonyOS应用或服务的性能调优能力。

实时监控,定界性能问题

想要发现并解决性能问题,首先要对当前应用的运行情况、设备的资源消耗进行监测,初步确定可能存在的性能问题和问题出现的位置。实时监控则带来了全方位的设备资源监测能力,包括或覆盖系统事件、异常报告、CPU占用、内存占用、实时帧率、GPU使用率以及能耗等多个维度的数据,参考这些数据,开发者可以初步识别性能瓶颈,定界问题。

实时监控图

Time Insight 分析函数耗时

遇到卡顿、加载耗时等性能问题时,通常会关注相关函数执行的耗时情况。基础的函数耗时场景分析Time Insight,可在应用/服务运行时,展示热点区域内进程/线程的调用栈信息,并提供代码跳转的能力,开发者可以更便捷地优化代码。

耗时分析图

除了默认的Call Tree形式调用栈以外,开发者可以打开"Flame Chart"开关以使用火焰图的形式来分析函数调用栈。

Allocation Insight 分析内存问题

API使用错误、变量未及时释放、异常频繁创建/释放内存等情况可能会导致各种内存问题,内存场景分析Allocation Insight则支持分析应用或服务在运行时的内存分配及使用情况,识别和定位内存泄漏、内存抖动、内存溢出等问题,方便开发者优化内存。

内存分析图

Snapshot Insight 分析ArkTS内存占用

针对方舟虚拟机,DevEco Profiler提供了内存快照分析能力,结合Memory实际内存使用情况,分析不同时刻的方舟虚拟机内存对象占用情况及差异。并且,可在Snapshot中进行快照的差异比较,如新增数、删除数、个数增量、分配大小、释放大小、大小增量等数据的比较,分析和定位内存问题的具体位置会更加便利。

对比快照图

CPU Insight 分析CPU活动关键数据

CPU分析场景支持采集应用或服务运行时数据,同步显示CPU使用率和线程的运行状态,查看指定时间段内的CPU资源消耗情况,也可以查看系统的关键打点(如图形系统打点、应用服务框架打点等),进行更具针对性的优化。

框选主泳道展示图

Frame Insight 分析应用卡顿丢帧

当发现有表单滑动不顺畅、页面交互延迟、动效不流畅等现象时,可以使用Profiler提供的场景分析Frame Insight,录制采集卡顿过程中的关键数据进行分析,识别导致卡顿丢帧的原因。此外,Frame Insight还集成了Time、CPU场景分析的功能,方便开发者在分析卡顿丢帧数据时对比同时段的其他资源占用情况。

单个帧数据图

Launch Insight 识别启动耗时瓶颈

启动耗时是很重要的一个指标。在需要分析启动过程的耗时瓶颈、优化应用或服务的冷启动耗时,就可以使用Profiler提供的Launch场景分析能力,录制采集应用或服务启动过程中的关键数据进行分析,识别出应用/服务启动耗时长的问题。此外,Launch Insight集成了Time、CPU、Frame场景分析能力,方便开发者在分析启动耗时的过程中同步对比同时段的其他资源占用情况。

Launch泳道信息图

以上是DevEco Profiler能力全集,开发者在连上设备后,可以根据自己的需要在Profiler主界面选中对应的分析场景,点击“Create Session”去创建,详细操作请参考DevEco Profiler性能调优概述

2024-06-14 11:10:12