鸿蒙NEXT开发【调优工具合集】性能分析

1

性能调优贯穿于鸿蒙应用开发的整个生命周期中,开发前有性能最佳指南等赋能套件让你快速上手学习,开发过程中有性能工具开发套件覆盖应用开发各阶段,应用开发完成上架后有专业的性能测试工具检查测试应用性能指标。本文重点介绍应用开发过程中开发套件涉及的性能工具集,目前DevEco Stduio主要集成了四种性能工具,在不同的开发阶段各有侧重,主要分为性能问题检测类工具和性能问题分析类工具。

2

性能问题检测类工具

AppAnalyzer

介绍

应用体检工具Benchmark体检套餐集成动态性能规则检测项,助力检测应用性能瓶颈,快速修复性能问题。

使用方法

  1. 打开AppAnalyzer页面:在DevEco Studio中,单击菜单栏Tools > AppAnalyzer,弹出AppAnalyzer页面,在AppAnalyzer页面Module选择框选择HarmonyOS应用/服务工程模块。

    3

  2. 开始体检:选择体检套餐Benchmark性能套餐,之后点击Start进行检测。

    4

  3. 生成体检报告:应用体检项分为自动化体检项和手动体检项,自动化性能测试项执行耗时较长,默认未勾选;自动体检项执行完毕后会提示开发者手动操作单页面,过程中会有体检倒计时提醒开发者停止性能体检。点击Stop停止体检任务,查看性能体检结果。

  4. 参考体检报告:

5

  1. 联动到其他性能工具,引导修复。在报错详细信息界面,点击Optimization Suggestion/ Code Linter/ Profiler跳转链接,可进一步定位或修改问题代码。

    • Optimization Suggestion — 打开相应性能检测项关联的官方最佳性能实践;
    • Code Linter — 根据提示的源文件信息,使能Code Linter自动扫描该源文件;
    • Profiler — 体检报告中有抓取性能问题的日志文件,根据不同规则问题需要的日志种类,分别包含:trace文件 、调用栈文件、内存snapshot文件,使用DevEco Profiler导入后进行性能深入分析;

注意点

  • 只有已经完成签名编译打包的模块才能被选中。

Code Linter

介绍

静态检测工具,白盒检查代码性能问题。可配置开发者关注的性能规则,扫描结果支持跳转到代码,性能规则详情或者官网的最佳性能实践指导。

使用方法

在已打开的代码编辑器窗口单击右键点击Code Linter,或在工程管理窗口中鼠标选中单个或多个工程文件/目录,右键选择Code Linter > Full Linter执行代码全量检查。如图所示输入@performance,过滤性能检查结果。

6

注意点

  • 若未配置代码检查规则文件,直接执行Code Linter,将按照默认的编程规范规则对.ets文件进行检查。
  • 注意[规则变更]

性能问题分析类工具

DevEco Profiler

介绍

性能调优深入分析工具,支持冷启动、卡顿丢帧、状态变量、并行化、网络耗时、ArkWeb、内存优化等场景化调优能力。

使用方法

注意点

  • Profiler工具不支持模拟器进行调优。

ArkUI Inspector

介绍

开发者可以使用ArkUI Inspector,在DevEco Studio上查看应用在真机上的组件布局,并通过查看多次操作后的界面状态,快速分析定位状态变量、组件嵌套层次、UI界面布局存在的问题等。

使用方法

性能工具集定位分析性能问题流程

体检工具和代码检查工具联动:针对共性问题触发代码白盒检查,通过性能规则精确发现开发者开发过程中引入的性能问题,并给出具体的修改建议和范式。

体检工具和调试&调优工具联动:部分不能通过具体规则拦截的性能问题,跳转到调试&调优工具进行分析,分析并行化、组件耗时、页面层次等具体问题。

7

  1. 检测发现性能问题,在代码编辑阶段可以使用Code Linter代码检查工具对代码进行单个文件或者文件夹进行静态代码扫描;同时在应用功能开发完成后,在运行态可以使用应用体检工具检测应用运行过程中的性能问题;

  2. 以应用体检工具为主,对于动态运行检测发现的性能问题,提供三种修复问题的路径:

    • 根据跳转的官网性能指导来修改发现的性能问题;
    • 根据检测结果的问题页面,触发该页面源文件的Code Linter静态性能检查,根据静态检查结果跳转到官方最佳性能实践指导修复性能问题;
    • 根据检测结果的过程性能文件,跳转到DevEco Profiler导入该文件深入分析,定位发现性能瓶颈点;

解决应用性能问题的策略

构建以体检工具为主,调优工具为辅的性能工具集,通过应用体检发现问题并给出修复建议。

滑动卡顿丢帧和时延类问题

  1. 有检查规则覆盖的问题

    8

    应用体检工具的Benchmark体检套餐目前集成了通用性能检测项和最佳性能实践检测规则,对于性能规则能覆盖的滑动卡顿丢帧和时延类性能问题,这类问题的定位思路如下:

    • 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择性能检查测试项,点击开始执行应用体检;
    • 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
    • 查看未通过项详情,对于性能规则能覆盖的性能问题,可首先查看性能指导尝试修复问题,也可触发问题页面源码文件的Code Linter静态性能检查,根据静态检测结果呈现的具体错误和最佳性能实践修复问题。
  2. 无检查规则覆盖的问题

    9

对于性能规则不能覆盖的滑动卡顿丢帧和时延类性能问题,这类问题的定位思路如下:

  • 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择性能检查测试项,点击开始执行应用体检;
  • 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
  • 查看未通过项详情,对于性能规则不能覆盖的性能问题,可将检测过程中生成的trace文件或者perfdata文件导入到DevEco Profiler工具,深入分析代码的性能瓶颈点,修复性能问题。

内存类问题

10

对于应用的内存类问题定位思路如下:

  1. 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择内存相关性能检测项,点击开始执行应用体检;
  2. 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
  3. 查看未通过项详情,可将检测过程中生成的snapshot文件导入到DevEco Profiler工具,深入分析代码的性能瓶颈点,修复内存问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值