在项目初期,开发人员往往关注开发需求,很少关注性能问题。
但是,随着功能越来多,界面越来越丰富,系统加载不过来,导致卡顿问题越发严重,用户反馈异常增多,于是整理了一些iOS卡顿的相关内容,也来谈一谈卡顿监测问题。一、卡顿检测
实际项目中,卡顿问题不好发现和定位,开发人员就只能一遍一遍的打断点调试代码,一遍一遍的查找原因,导致工作量异常繁重,从而导致大量经费的消耗。在这种情况下,可以借助第三方性能检测工具查找问题,推荐使用友盟U-APM,卡顿分析功能是通过U-APM提供的监控SDK 捕获所监控App主线程消息执行超时的情况,帮助您优化用户使用体验、用户反馈问题是否与卡顿现象间接引发有关,下面介绍一下友盟的卡顿分析部分功能:
1、卡顿列表
您可以在此列表中查看筛选维度+时间范围内,所有卡顿问题根据日志根据算法聚合后的错误列表,默认按照卡顿次数降序展示,帮助您快速的找到卡顿次数最多、影响最严重的卡顿问题。您也可以选择按照影响人数排行,找到影响面积最大的卡顿问题
2.卡顿模块
卡顿模块通过智能算法聚类了卡顿的模块与子模块,支持正序聚合与倒序聚合
正序聚合:从栈顶开始到栈底聚合,您可以看到导致卡顿的核心原因是什么
倒序聚合(默认选择):从栈底开始到栈顶,聚合之后,您可以发现影响性能的最底层的方法
3.卡顿详情
点击卡顿摘要可以进入卡顿详情的页面
您可以在此页面查看卡顿的详情信息,帮助您排查卡顿问题的原因,提供了卡顿趋势、卡顿分布、卡顿详细日志、卡顿设备信息以及卡顿备注的功能
了解过友盟的功能后,相信大家对于卡顿问题的检测已经得心应手,下面来看一看造成卡顿的原因以及解决方法!
二、造成卡顿的原因及解决办法
1、离屏渲染问题
在tableView or collectionView的Cell使用中如果大量出现了view.layer.cornerRadius + ClipToBoundsormasksToBounds的设置,会造成滚动不流畅,滚动起来十分的卡顿。
2、线程问题
主线程阻塞
这是一个最常出现的问题,当在主线程进行长耗时操作时就会出现明显的卡顿现象。这时的解决办法就是将长耗时操作放到分线程处理,这个就不多赘述了。
多线程问题
Apple 一直推荐自己创建 serial GCD queue 的时候,一定要控制数量,而且最好设置 target queue,否则会出现问题。
总结
本篇总结了iOS APP卡顿的相关内容,希望能给看到的开发同学带来实质性的帮助!
1.《我的苹果app反应很慢怎么办啊?我来告诉你答案iOS APP卡顿检测及造成原因》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《我的苹果app反应很慢怎么办啊?我来告诉你答案iOS APP卡顿检测及造成原因》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3240886.html