当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/259680.html

相关文章:

  • Linux操作系统的ECS云服务器上搭建WordPress网站教程
  • 【Linux】多线程相关问题
  • GPS北斗卫星时空信号安全防护装置(授时)介绍
  • redis:一、面试题常见分类+缓存穿透的定义、解决方案、布隆过滤器的原理和误判现象、面试回答模板
  • 智慧公交:提高城市出行效率的数字化之路
  • Linux - 内存 - memblock 分配器
  • SQL、Jdbc、JdbcTemplate、Mybatics
  • 四六级高频词组8
  • fastapi-amis-admin快速创建一个后台管理系统增加音乐管理功能(3)
  • 全球化需要先搬离中国?中国公司出海不应失去“模式自信”
  • 三大维度解码剑南春“高质量发展”丨年度盘点
  • 外包干了3个月,技术退步明显.......
  • 思福迪运维安全管理系统 test_qrcode_b RCE漏洞复现
  • Salesforce×阿里云,影响几何?
  • Qt对excel操作
  • 每日一练 | 华为认证真题练习Day148
  • ES6学习(二):解构赋值
  • kubebuilder开发operator
  • docker中启动ES报错:AccessDeniedException: /usr/share/elasticsearch/data/nodes
  • java集成Nacos服务
  • 开源IPad Pro应用IDE:使用SSH远程连接服务器进行云端编程开发
  • ubuntu 自动安装 MKL Intel fortran 编译器 ifort 及完美平替
  • elementui select中添加新增标签
  • 图像截屏公式识别——LaTeX-OCR安装与使用
  • LabVIEW与Tektronix示波器实现电源测试自动化
  • 青少年CTF-Crypto(Morse code/ASCII和凯撒)
  • Vue3-16-【v-model】 表单数据绑定
  • 【Flink on k8s】- 12 - Flink kubernetes operator 的高级特性
  • 量子芯片技术:未来的计算革命
  • vaptcha-手势验证码