往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)
✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
✏️ 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
✏️ 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
✏️ 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
✏️ 记录一场鸿蒙开发岗位面试经历~
✏️ 持续更新中……
性能调优贯穿于鸿蒙应用开发的整个生命周期中,开发前有性能最佳指南等赋能套件让你快速上手学习,开发过程中有性能工具开发套件覆盖应用开发各阶段,应用开发完成上架后有专业的性能测试工具检查测试应用性能指标。本文重点介绍应用开发过程中使用性能工具与性能优化文章定位分析性能问题流程,目前DevEco Studio主要集成了四种性能工具,在不同的开发阶段各有侧重,主要分为性能问题检测类工具和性能问题分析类工具。
性能工具集定位分析性能问题流程
体检工具和代码检查工具联动:针对共性问题触发代码白盒检查,通过性能规则精确发现开发者开发过程中引入的性能问题,并给出具体的修改建议和范式。
体检工具和调试&调优工具联动:部分不能通过具体规则拦截的性能问题,跳转到调试&调优工具进行分析,分析并行化、组件耗时、页面层次等具体问题。
- 检测发现性能问题,在代码编辑阶段可以使用Code Linter代码检查工具对代码进行单个文件或者文件夹进行静态代码扫描;同时在应用功能开发完成后,在运行态可以使用应用体检工具检测应用运行过程中的性能问题;
- 以应用体检工具为主,对于动态运行检测发现的性能问题,提供三种修复问题的路径:
- 根据跳转的官网性能指导来修改发现的性能问题;
- 根据检测结果的问题页面,触发该页面源文件的Code Linter静态性能检查,根据静态检查结果跳转到官方最佳性能实践指导修复性能问题;
- 根据检测结果的过程性能文件,跳转到DevEco Profiler导入该文件深入分析,定位发现性能瓶颈点;
解决应用性能问题的策略
构建以体检工具为主,调优工具为辅的性能工具集,通过应用体检发现问题并给出修复建议。
滑动卡顿丢帧和时延类问题
- 有检查规则覆盖的问题
应用体检工具的Benchmark体检套餐目前集成了通用性能检测项和最佳性能实践检测规则,对于性能规则能覆盖的滑动卡顿丢帧和时延类性能问题,这类问题的定位思路如下:
* 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择性能检查测试项,点击开始执行应用体检;
* 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
* 查看未通过项详情,对于性能规则能覆盖的性能问题,可首先查看性能指导尝试修复问题,也可触发问题页面源码文件的Code Linter静态性能检查,根据静态检测结果呈现的具体错误和最佳性能实践修复问题。
- 无检查规则覆盖的问题
对于性能规则不能覆盖的滑动卡顿丢帧和时延类性能问题,这类问题的定位思路如下:
- 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择性能检查测试项,点击开始执行应用体检;
- 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
- 查看未通过项详情,对于性能规则不能覆盖的性能问题,可将检测过程中生成的trace文件或者perfdata文件导入到DevEco Profiler工具,深入分析代码的性能瓶颈点,修复性能问题。
内存类问题
对于应用的内存类问题定位思路如下:
- 打开应用体检工具,准备好调测软件包,选择Benchmark体检套餐,自定义选择内存相关性能检测项,点击开始执行应用体检;
- 执行检测过程分为自动检测和手动检测,自动检测完成后会提示用户手动操作应用。应用体检工具会自动分析发现应用执行过程中的性能问题,将检测结果呈现给用户,用户重点关注未通过项;
- 查看未通过项详情,可将检测过程中生成的snapshot文件导入到DevEco Profiler工具,深入分析代码的性能瓶颈点,修复内存问题。