关于ios 卡顿检测分析

本文介绍了iOS卡顿的原理,包括像素显示过程、CPU与GPU的角色以及双缓冲机制。同时,提到了iOS卡顿的检测方法,如监控FPS、RunLoop和ping主线程,并推荐使用友盟+U-APM作为卡顿分析工具,该工具能便捷地检测App卡顿原因,提供详细的卡顿数据和定位问题的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多iOS 开发,开发过程中都会面临到解决App卡顿问题,从而也衍生出很多的方法去解决卡顿,这篇文章来描述下iOS卡顿产生的原因,以及如何进行iOS卡顿检测分析。

了解iOS卡顿原理

像素是如何显示到屏幕上?

从最初的电子枪显示器说起,电子枪逐行读取像素点,逐行发射到屏幕上,每当一行扫描完成,显示器会发出水平同步信号HSync;然后继续下一行,直到最后一行完成一帧的绘制,电子枪恢复到起点继续下一帧的绘制,显示器会发出一个垂直同步信号VSync。对于iOS设备,VSync信号的间隔是16.7ms,也就是1秒60帧。

实际绘制过程中:

1.由CPU 计算好显示的内容:如视图的创建,布局的计算,图片的解码,文本的绘制,

2.然后GPU完成渲染,得到最终的像素,像素会输出到帧缓存(Frame Buffer)中

3.Video Controller (视频控制器)发出垂直信号(每16.67ms读取一次)进行读取Frame Buffer

4.最终输出到Monitor(显示器)上面。

假设只有一个Frame Buffer,意味着GPU和CPU必须在VSync发出的瞬间完成前面所有的工作,否则在视频控制器显示的过程中修改Frame Buffer,那么显示器就会在这一帧的前半部分显示上一帧的内容,下半部分显示当前帧的内容,造成画面断层的怪异现象。为了解决这个问题,大多数平台都引入了多缓存机制,比如iOS平台的双缓存, Android平台的三缓存机制;

因为苹果使用双缓冲区,根据上图,当垂直信号过来之后,但是GPU还没有渲染完成,就会出现掉帧(卡顿)显现。

iOS卡顿检测分析

市面上的iOS卡顿分析方案有三种:监控FPS、监控RunLoop、ping主线程。这里就不在赘述了,下图总结方便大家了解一下。

上文我们从理论层面上了解了检测iOS卡顿的方法,但在实际操作中对开发人员来说可是个不小的工程,在此,我推荐使用第三方性能检测工具友盟+U-APM检测卡顿原因,只需要简单的集成方式,就可以对App进行全方位检测,友盟+U-APM中的卡顿分析是通过U-APM提供的监控SDK 捕获所监控App主线程消息执行超时的情况,可以帮助您优化用户使用体验、用户反馈问题是否与卡顿现象间接引发有关。

您可以在此页面查看不同时间段、筛选维度下的卡顿数据趋势,默认展示全部维度、今天的数据,您可以根据自己的查询条件进行筛选;其中的卡顿次数、卡顿率、卡顿用户数、卡顿用户占比都可一目了然。

可以在此列表中查看筛选维度+时间范围内,所有卡顿问题根据日志根据算法聚合后的错误列表,默认按照卡顿次数降序展示,帮助您快速的找到卡顿次数最多、影响最严重的卡顿问题。当然您也可以选择按照影响人数排行,找到影响面积最大的卡顿问题。

点击问题列表可查看日志详情,在这里便可以看到问题发生的位置了。

最后,友盟+U-APM的卡顿分析工具,大家可以放心使用,如果有不明白的小伙伴可以登录友盟官网体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值