首页LazyForEach predict耗时久分析

在首页慢滑动有卡顿现象,通过IDE Profile抓取Fram分析,发现有很多异常帧。其中有几帧LazyForEach predict耗时比较久,在这一帧中存在大量aboutToDisappear、aboutToBeDeleted等调用,需要分耗时原因和性能优化点。异常帧如下:

首页LazyForEach predict耗时久分析-鸿蒙开发者社区


HarmonyOS
2024-05-28 22:35:46
浏览
已于2024-5-30 00:01:02修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
koarla

1.一帧中出现大量aboutToDisappear、aboutToBeDeleted,说明这一帧里有大量自定义组件析构。当一个父组件析构时,这个父组件的子组件也都会走析构,当一个嵌套复杂的自定义组件析构时就会出现大量的aboutToDisappear、aboutToBeDeleted。

2. 分析首页页面布局,主要是一个长列表,通过LazyForEach加载,每个子组件就是一个博文组件,博文组件内部通过一个Builder函数区别是文本博文,图片博文,还是视频博文。

3.通过首页布局分析,List的每一个Item实际上是加了@Resuable。预期在滑动过程中,应该是不会有组件析构,组件在滑出屏幕即将要析构的时候,只会进入复用池。但是如果自定义组件内部有逻辑控制分支,当切换分支时else里面的自定义组件也是会正常析构。于是优化方向为在逻辑分支对应被删掉的自定义组件加上也加上@Reusable,适当以空间换性能。

分享
微博
QQ
微信
回复
2024-05-29 23:45:01
相关问题
"NAPI通信耗时长"导致丢帧分析
185浏览 • 1回复 待解决
JsCreateAVPlayer耗时较长
569浏览 • 1回复 待解决
LazyForEach如何添加数据?
741浏览 • 1回复 待解决
Xcomponent绘图流程分析
496浏览 • 1回复 待解决
ListItemGroup 和lazyforeach如何结合使用
197浏览 • 1回复 待解决
ListItemGroup 和Lazyforeach结合场景
406浏览 • 1回复 待解决
openharmony napi 异步耗时阻塞js的ui刷新
4072浏览 • 1回复 已解决
什么是PolarDB的锁分析
1651浏览 • 1回复 待解决
分析埋点无法正常上报
483浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
188浏览 • 1回复 待解决
使用LazyForEach懒加载列表相关问题
362浏览 • 1回复 待解决
什么是PolarDB的空间分析
2812浏览 • 1回复 待解决
zlib.decompressFile()解压报错如何分析
481浏览 • 1回复 待解决
有没有性能分析工具啊?
352浏览 • 1回复 待解决
ListItemGroup能跟LazyForEach搭配使用吗
427浏览 • 1回复 待解决
LazyForEach懒加载的原理是什么
896浏览 • 1回复 待解决