在项目初期,开发者往往着重关注开发需求,很少会去关注性能问题。但是,随着功能越来多,界面越来越丰富,系统加载不过来,导致卡顿问题越发严重,用户反馈异常增多,于是整理了一些iOS卡
在项目初期,开发者往往着重关注开发需求,很少会去关注性能问题。但是,随着功能越来多,界面越来越丰富,系统加载不过来,导致卡顿问题越发严重,用户反馈异常增多,于是整理了一些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、清空Safari缓存。
需要进入【设置】-【Safari】,然后点击“清除历史记录”和“清除Cookies和数据”。
2、关闭自动更新自动下载。
如果iPhone在使用时出现卡顿,那可能是因为它正在后台尝试应用升级,需要进入【设置】-【iTunes Store和App Store】自动下载的项目,然后全部关闭。
3、删除占用大量空间的应用。
iPhone越是臃肿,运行速度也就越慢。可以在设置-通用-用量当中查看到每款应用的空间占用,然后将那些占用空间大但并不是必要的应用删除。
4、关闭后台不必要运行的应用。
关闭“后台”只会加快iPhone的耗电速度,但是对于一些平时不怎么用的应用,完全可以双击home键关闭它,只保留常用的即可。
5、能手动执行的操作就不要开启自动模式。
因为当iPhone在进行任何自动操作时,比如搜索附近Wi-Fi或升级应用,都会降低运行速度。需要进入【设置】-【无线局域网】-【询问是否加入网络】,然后将其关闭。
6、定期重启手机。
在使用iPhone时,都会一直保持着开机状态,定期重启手机其实是很有必要的。