鸿蒙开发中如何快速定位丢帧

前言

大家好,我是simple。我的理想是利用科技手段来解决生活中遇到的各种问题

在前端、app等在做性能优化的过程中,我们都比较注重丢帧的问题,因为丢帧往往会让用户觉得有些卡顿。但是有时随着项目的庞大,有些时候我们无法快速定位到丢帧的情况,这时我们就需要借助这个分析工具帮助我们快速定位这个代码问题。

1. Frame Profile简介

Profiler是DevEco-Studio的IDE自带功能,可以在最下排看到profiler工具,或者通过view > tool windows > profiler进入,然后选中Frame。Frame Profiler用于录制GPU数据信息,录制完成的子泳道对应录制过程中各个进程的帧数据,主要用于深度分析应用或服务卡顿丢帧的原因。

Profiler里面包含很多工具,包括内存泄露分析、掉帧卡帧分析、应用启动耗时分析等等,有机会可以讲讲。

2. 使用介绍

2.1 创建会话

  • 「创建会话」是分析的起点:点击 "Create Session" 后,工具会与目标设备 / 应用建立连接,开始监听并记录性能数据。
  • 会话期间可进行操作:创建会话后,你可以在应用中复现需要分析的场景(如滑动列表、执行动画等),工具会持续采集该过程中的性能数据。
  • 会话结束后数据可复用:停止会话后,采集的数据会被保存,你可以随时回看该会话的帧率趋势、帧耗时分布等信息,无需重新复现场景。

大白话就是我们只需要点击create session的按钮,然后点击开始,随后我们就可以针对某些卡顿的情况操作app,它就会帮我们记录app所有的场景性能数据。

2.2 分析会话

操作完上述步骤,我们就能得到一个如下的会话数据,此时frame对应的就是Gpu的使用情况。

我们通过wasd按钮可以对对应的数据进行缩放,看到我们想要看的那些数据中。

从图可以看到,上面有用户操作事件,我们也可以通过操作事件去进行一些标记,就能够更快的找到我们需要定位的帧数。而下面标红的帧块可以看出,本应该发生在213帧的,却因为一些原因导致它延迟了发生在了215帧。

系统希望它能够在8ms内运行完的计算,却要在16ms内才彻底运行完毕。因此在这里失去了2帧。

tips: 窗口下方的"Frame"区域中会显示选定帧的关键信息,如VSync编号、开始时间、App应用侧持续时间、App应用侧业务逻辑耗时、Render Service侧持续时间、GPU持续时间、总持续时间、卡顿丢帧类型以及可能出现卡顿的原因等。"Non UI"区域中会显示非UI耗时最大的函数,如开始时间、结束时间、持续时间,函数名等。

2.3 代码分析

此时我们往下看,就能发现对应执行的callstack已经陈列在下面了(我们重点看ts或者是ets的文件)然后对一些可疑或者运行时间比较长的文件进行双击,即可快速看到里面的方法,然后对这个方法进行适当的优化即可。

总结

关键步骤:复现场景→定位区间→分析帧耗时→追踪函数→优化验证

相关推荐
盐焗西兰花8 小时前
鸿蒙学习实战之路-蓝牙设置完全指南
学习·华为·harmonyos
Van_Moonlight9 小时前
RN for OpenHarmony 实战 TodoList 项目:加载状态 Loading
javascript·开源·harmonyos
Van_captain11 小时前
rn_for_openharmony常用组件_Divider分割线
javascript·开源·harmonyos
cn_mengbei13 小时前
鸿蒙PC原生应用开发实战:ArkTS与DevEco Studio从零构建跨端桌面应用全栈指南
华为·wpf·harmonyos
前端不太难14 小时前
从本地到多端:HarmonyOS 分布式数据管理实战详解
分布式·状态模式·harmonyos
行者9615 小时前
Flutter适配OpenHarmony:国际化i18n实现中的常见陷阱与解决方案
开发语言·javascript·flutter·harmonyos·鸿蒙
cn_mengbei16 小时前
鸿蒙PC开发实战:Qt环境搭建保姆级教程与常见问题避坑指南(HarmonyOS 4.0+DevEco Studio 3.1最新版)
qt·华为·harmonyos
特立独行的猫a16 小时前
[鸿蒙PC命令行程序移植]:移植axel多线程高速下载工具踩坑记
华为·harmonyos·移植·鸿蒙pc·axel
Van_Moonlight16 小时前
RN for OpenHarmony 实战 TodoList 项目:任务完成进度条
javascript·开源·harmonyos
cn_mengbei17 小时前
从零到一:基于Qt on HarmonyOS的鸿蒙PC原生应用开发实战与性能优化指南
qt·性能优化·harmonyos