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

相关推荐
左手厨刀右手茼蒿18 小时前
Flutter for OpenHarmony 实战:Barcode — 纯 Dart 条形码与二维码生成全指南
android·flutter·ui·华为·harmonyos
njsgcs20 小时前
windows ui窗口post 我wsl开放的flask llm端点
windows·ui·flask·post
中国胖子风清扬21 小时前
Rust 桌面应用开发的现代化 UI 组件库
java·后端·spring·ui·rust·kafka·web application
左手厨刀右手茼蒿1 天前
Flutter for OpenHarmony 实战:equatable 插件简化值相等性的终极方案
android·flutter·ui·harmonyos
草莓熊Lotso1 天前
Qt 对话框全家桶实战:模态 / 非模态 + 5 大内置对话框全攻略
运维·c语言·开发语言·c++·人工智能·qt·ui
金融RPA机器人丨实在智能1 天前
从 UI 自动化到 Agentic RPA:深度解析实在智能 TARS 大模型驱动的自动化架构演进
人工智能·ui·ai·自动化·rpa
左手厨刀右手茼蒿1 天前
Flutter for OpenHarmony 实战:battery_plus 实时电力监控与低功耗逻辑
android·flutter·ui·harmonyos·sentry
大黄说说2 天前
从意图到界面:AI 驱动的 JSON 中间表示如何重塑现代 UI 构建范式
人工智能·ui·json
左手厨刀右手茼蒿3 天前
Flutter for OpenHarmony:UI 细节微调与 HarmonyOS 特有手势适配指南
flutter·ui·harmonyos
左手厨刀右手茼蒿3 天前
Flutter for OpenHarmony 实战:Sentry 全链路监控与线上崩溃治理
android·flutter·ui·harmonyos·sentry