目录

快速滑动列表时数据加载延迟

问题现象

在快速滑动列表页时,数据需要等待一段时间才会显示。

背景知识

问题定位

  1. 使用DevEco Profiler的Frame模板抓取应用列表页快速滑动后加载内容的Trace。在应用包名主泳道的H:APP_LIST_FLING泳道找到抛滑过程结束的时间点。

  2. 查看应用包名主泳道发现在结束抛滑过程后存在耗时Trace点。可以明显看到Stack、Scroll、List组件的测量任务耗时较长。

  3. 结合ArkUI Inspector中看到的页面组件结构,可以发现列表中的每一项都是由相同类型的元素和布局构成,列表项组件名为XXXView。

  4. 根据组件名搜索关键字H:CustomNode:BuildRecycle XXXView,可以看到组件复用13次,平均每次复用时耗时7.9ms,耗时较长。

  5. 框选单次复用的Trace,在下方Slices中过滤关键字H:Create,可以看到在此过程中创建了27个子组件。结合ArkUI Inspector查看页面组件结构,组件嵌套层数为17层,且其中包含大量并未在当前页面中展示的节点。因此是页面整体组件嵌套层级复杂且复用组件中节点过多导致绘制耗时。

分析结论

页面整体组件嵌套层级复杂且复用组件中节点过多导致绘制耗时。

修改建议