目录

ArkUI分析

功能介绍

ArkUI模板用于定位由于组件耗时、页面布局、状态变量更新导致的卡顿问题。常见场景包含:布局嵌套过多引起的性能问题;数据结构设计不合理,应用使用一个较大的Object,在更新时,只更新某些属性,导致其他没变化的属性也会更新,产生冗余刷新;父组件中的子组件重复绑定同一个状态变量进行更新;未正确使用装饰器,如错误使用@Prop传递一个大的对象进行深度拷贝等。

ArkUI模板支持的泳道包括:APP Frame、ArkUI Component、ArkUI State、ArkTS Callstack、Callstack、CPU Core、Process。本文介绍ArkUI Component、ArkUI State泳道,其他泳道的详细信息请参考对应模板内容。

任务分析前,需创建ArkUI分析任务并录制相关数据,操作方法可参考性能问题定位:深度录制,或在会话区选择Open File,导入历史数据。

查看组件绘制耗时

开发者通过ArkUI Component泳道可以直观感知组件绘制频率、耗时等统计情况。

  1. 在时间轴上拖拽鼠标选定要查看的时间段。
  2. Summary区域展示录制时段内自定义组件以及系统组件的绘制统计情况,包括绘制次数、总耗时、最小耗时、平均耗时、最大耗时、耗时标准差。

  3. Details详情区域可以查看按照时间线排序的组件详情,同时More区域展示以该组件为根节点的组件树信息。

  4. 点选ArkUI Component泳道中的条块,会打开Slice Detail区域,点击Slice Detail中的Name支持跳转至对应Process子泳道并选中trace信息,More区域展示以该组件为根节点的组件树信息。

    由于隐私安全政策,已上架应用市场的应用不支持录制ArkUI Component泳道。

查看状态变量变化

  1. 点击ArkUI State泳道,可在下方数据区查看录制过程中发生的状态变量变化。

    • Summary区域可查看状态变量名称、变化次数、状态变量类型、所属组件和所属类。

    • Current Value区域以时间顺序展示状态变量变化,Current Values列展示变化后的值。选择Current Value中某一个数据,泳道区域将以虚线展示其时间位置,右侧More区域展示该状态变量影响的组件关联关系。打开页面下方的Delivery Chain开关,该状态变量影响的组件关联关系将以图形展示。

  2. 定位到可能造成卡顿的状态变量变化时间点,框选对应时间段,选择ArkUI Component泳道查看对应组件刷新时间。

  • 由于隐私安全政策,已上架应用市场的应用不支持录制ArkUI State泳道。