鸿蒙5.0开发【优化过程】 DevEco Profiler性能调优

流程概览

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在开发应用时,开发者会对应用的运行情况有一个预期的指标,当应用在某些方面不能满足预期的指标或者表现不佳时,意味着您的应用可能存在性能问题,需要对应用进行性能优化以达到您的预期。应用的性能优化是一个不断持续的周期性的过程,您需要在应用开发过程中观察应用的运行表现来识别性能瓶颈,通过运行时数据来定界定位性能问题,定位根因后修复代码并验证优化措施的可行性,循环往复直到应用满足您的性能指标。DevEco Profiler也遵循以上流程,在使用DevEco Profiler进行性能优化时,您可以参考以下过程:

  1. 使用“Realtime Monitor”监控设备的各项资源使用情况,识别定界潜在的性能瓶颈及热点区域,例如CPU占用超过预期、内存异常增大等;
  2. 创建深度分析任务,通过详细的应用运行时数据,例如perf、内存对象等信息,来分析并定位性能问题出现的根因;
  3. 根据性能分析的结果优化代码;
  4. 再次使用“Realtime Monitor”查看各项资源的使用情况是否符合预期,来验证代码修改的可行性。

性能问题定界:实时监控

解决性能问题,首先对当前应用的运行情况以及设备的资源消耗进行监测,以初步确定可能存在的性能问题以及问题出现的位置。

DevEco Profiler提供实时监控(Realtime Monitor)能力,该能力为您提供全方位的设备资源监测,覆盖系统事件、异常报告、CPU占用、内存占用、实时帧率、GPU使用率、温度、电流以及能耗等多个维度的数据,帮助您初步识别性能瓶颈,定界问题所在。

配置并确认设备环境

为了能够正确地监测您的设备资源,首先您需要通过USB完成设备连接,打开“开发者模式”并选择允许“USB调试”,然后通过DevEco Studio将您开发的应用安装到设备上。随后您可以通过如下步骤来查看应用的实时资源使用情况。

  1. 您可以通过如下三种方式打开DevEco Profiler:

    • 在DevEco Studio顶部菜单栏中选择“View -> Tool Windows -> Profiler”。
    • 在DevEco Studio底部工具栏中单击“Profiler”。
    • 按“Double Shift”或者“Ctrl+Shift+A”打开搜索功能,搜索“Profiler”。
  2. 在设备上启动您想要监测的应用。

  3. 在DevEco Profiler界面左上角的设备、应用及进程列表中,选择调优设备及待调优的应用/服务进程。如果您的设备不止有一个主进程(还存在Extension或者Render进程),那么您需要再手动选择一个您想要监控的进程。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当选择完您需要监控的应用以及进程之后,DevEco Profiler会自动为您打开实时监控(Realtime Monitor)的页面。

实时监控应用,多维度对比识别性能热区

在实时监控界面,设备各项资源的使用情况均以泳道图的形式在时间维度展示,提供系统事件、CPU占用等多维度信息,帮助您识别性能热区。

面板整体介绍

  • 界面左侧为实时数据展示区域,该区域的数据显示了每一项监测内容的瞬时值,并通过饼图或者仪表盘的形式让您更加直观地观察到各项数据的使用占比以及具体数值。
  • 界面右侧则是各项数据随着时间推移的变化趋势,通过不同的图像形式(直方图、柱状图、折线图等)来更加清晰的展示某一项资源在一段时间范围内的变化趋势,以帮助您快速判断性能热点区域。

整个实时监控页面从上到下,依次展示了系统事件、异常事件、前台应用、CPU占用、内存占用、帧率、GPU使用率、温度、电流以及能耗等各个维度的数据,帮助您从多个维度来对比识别当前应用的性能热区。下面为您依次介绍每一条泳道的数据内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

泳道简介

① System Events泳道:该泳道展示了时间窗内系统事件的起始、终止等状态的统计情况。泳道内存在三种形状的标识:

  • 菱形:表示事件开始。
  • 正方形:表示事件结束。
  • 圆形:表示当前为时间点事件,无持续时间。

② Anomaly泳道:用于展示设备侧上报的各种异常事件。

③ Foreground Ability泳道:用于展示应用/服务的Ability状态。当Ability在前台运行时,会在此时间段内显示该Ability的名称;若当前无前台运行的Ability,则此时间段内显示“Background”。

④ CPU泳道:左侧饼图展示了当前时刻应用/服务的CPU使用率、其他进程的CPU使用率以及空闲情况。右侧的泳道图则展示了时间窗内的整体CPU使用情况,其中灰色的部分代表系统中其他进程的CPU占用,蓝色部分则展示了当前应用/服务的CPU占用情况。

⑤Memory泳道:左侧饼图展示了当前时刻应用/服务的内存占用、其他进程的内存占用以及未使用的内存。右侧的泳道图则展示了时间窗内的整体内存使用情况,其中灰色的部分代表系统中其他进程的内存占用,蓝色部分则展示了当前应用/服务的内存占用情况。

⑥FPS泳道:左侧仪表盘展示了当前设备屏幕的帧率瞬时值,红色、黄色、绿色区域则代表当前屏幕帧率是否达标理想状态。右侧柱状图则展示了每一次采集设备帧率时的数值。

⑦GPU泳道:左侧仪表盘展示了当前设备GPU使用率的瞬时值,右侧泳道则展示了时间窗内的整体GPU使用率。

⑧Temperature泳道:左侧温度计显示了当前设备温度信息,右侧泳道的数据采集周期为3秒,展示了时间窗内的设备温度信息以及温度等级。

⑨Device Current泳道:左侧展示了当前设备最大电流、平均电流以及最新的电流值,右侧泳道则展示了时间窗内的设备电流信息。

⑩Energy泳道:该泳道包含了各项部件(包括CPU、Display、GPU、Location、Camera、Bluetooth、Flashlight、Audio、Wifi、Modem)的周期内平均功耗占比。通过图例上方的下拉多选框则可以勾选您想要监控的功耗使用情况的应用,选择多个应用后,该泳道会展示所有您所选择应用的功耗总和。右侧区域柱状图则展示了时间窗内各部件资源的实时使用情况,柱状图的颜色代表每种部件的功耗占比。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说明

FPS、GPU显示的是所使用设备的实时信息,而非当前调优应用/服务的信息。

实时监控页面的常用操作交互方式

实时监控页面除了展示各个维度数据的瞬时值以及时间窗内的变化趋势之外,还提供了多种交互方式以供协助您更加便捷、快速、细致地分析您的数据。

  • 启停控制

    点击会话区“Realtime Monitor”页签上的按钮来即时控制实时监控界面的录制状态。

  • 详细数据展示

    将鼠标悬浮于所关心的泳道数据上时,界面上会出现当前时间点的时间标线以及含有当前时间点上泳道详细数据的Tooltips。更进一步,当您将鼠标悬浮于时间轴之上时,实时监控页面内的所有泳道均会以Tooltips展示出该时刻的数据

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 图例选择

    实时监控界面部分泳道内的图例均支持选择/反选来增加/去除泳道内这一数据的展示,内容改变后泳道内的数据会自动缩放以适应泳道的高度,能够更加专注地分析所关心的数据。

至此,通过分析实时监控的多维度设备数据,可以了解到当前设备的具体运行情况以及可能出现性能问题的热点区域。接下来,可以通过深度录制更加详细的设备侧运行数据来更加详尽地分析应用可能存在的性能问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值