UI卡顿问题

1、 监测卡顿的方式

a、Xcode 层级关系是否有异常

b、 instruments 的Animation Hitch工具检测:碰到问题,录制完了无数据(用iphone7录制有数据的,iphne14录制无数据?)

2、可能导致的卡顿的原因

a、 直播广场列表一直往下刷新内存会爆掉,可能存在内存泄漏,需要进一步看看

1、 可以用内存工具检测看看有没有异常

2、 看代码里有没有循环引用(结合撒伽师兄那天给的日志)

b、 cell上的lottie动画可能导致卡顿

c、 进一步看看还有没有其他可能导致卡顿的代码

1、 阴影、圆角设置的方式

2、 离屏渲染的问题

3、 光栅化设置

4、 图片缓存占用太多内存

5、 图片是否还有压缩的空间

6、 cell上有大量的removeFromSuperView可能导致卡顿,代码可以优化(是为了避免数据重复,在prepareForReuse里使用,可以换成在这里刷新数据???)

d、 检查是否有线程不合理问题

1、 主线程耗时任务,比如调用UIGraphicsGetCurrentContext等接口在 CPU 上进行绘制计算

2、 主线程等待繁忙的子线程或低优先级的后台线程任务而导致阻塞

3、 主线程等待系统资源,比如使用Data(contentsOf:)进行 IO 读取等

问题记录

1、preview类型数据没有自测过,记得mock数据自测

2、有recommend的数据也没自测过

待解决的问题

1、找到检测卡顿的工具 ------ instruments的animation hitch可以录制了

新发现

1、同一父视图重复调用addSubviews添加同一个View并不会产生多层级

重构心得

1、 抓住主要问题,先重构大量removeFromSuperView问题

2、 从最上层开始重构,重构玩一个单元,进行一次自测

3、 从关键方法入手分析

后记

卡顿分析相关参考文档

Instruments性能检测

https://www.jianshu.com/p/9e94e42cfb01

Animation Hitch:

https://www.jianshu.com/p/158a8497fe1c

https://juejin.cn/post/7231731488928399415

https://zhuanlan.zhihu.com/p/428971055?utm_id=0

iOS卡顿检测:

https://www.jianshu.com/p/ee62bbf38559

UICollectionView复用:

https://www.jianshu.com/p/5d817ea3565d

https://www.jianshu.com/p/e55178fd1e7f

dispatch_sync_on_main_queue:

https://www.jianshu.com/p/b3227582037d

相关推荐
syj_1114 小时前
初识ArkUI
ui·arkts·arkui
芋芋qwq12 小时前
Unity UI射线检测 道具拖拽
ui·unity·游戏引擎
鸿蒙自习室13 小时前
鸿蒙多线程开发——线程间数据通信对象02
ui·harmonyos·鸿蒙
大霞上仙16 小时前
element ui table 每行不同状态
vue.js·ui·elementui
栈老师不回家1 天前
Element UI 组件库详解【Vue】
前端·vue.js·ui
郭梧悠1 天前
HarmonyOS(57) UI性能优化
ui·性能优化·harmonyos
wyh要好好学习1 天前
WPF数据加载时添加进度条
ui·wpf
code_shenbing1 天前
跨平台WPF框架Avalonia教程 三
前端·microsoft·ui·c#·wpf·跨平台·界面设计
vvw&2 天前
如何使用 Docker Compose 安装 WireGuard UI
linux·服务器·ui·docker·容器·wireguard·异地组网
老码沉思录2 天前
Android开发实战班 - 现代 UI 开发之 Material Design及自定义主题
android·ui