iOS性能优化02-产生卡顿的原因

  • 卡顿产生的主要原因CPU和GPU所花费的时间太长从而造成俗称的丢帧(掉帧)

我们以下图为例,红色代表CPU,绿色代表GPU

  1. 首先把CPU把计算好的数据交给GPU去渲染,紧接着来一个VSync(垂直同步信号)就会把刚CPU计算好并且GPU渲染好的数据展示到屏幕上完成这一帧的显示,注意一旦发生一个VSync就会把GPU渲染到帧缓存里的数据显示到屏幕上,并且开始下一帧的操作,

  2. 我们第二帧的操作GPU花费的时间比较短还留出一段空闲时间等VSync的到来然后显示到屏幕上,但也有一种情况就是:

  3. 我们第三帧的操作,CPU计算完数据交给GPU去渲染,然而由于这次的数据比较多当VSync到来时,发现GPU还没有渲染完,上面我们也说了VSync一旦到来就会把GPU渲染到帧缓存里的数据显示到屏幕上,但是GPU并没有渲染完,所以只能显示上一帧的数据,也就意味着当前这帧数据丢失了,俗称丢帧或掉帧,而当前帧只能等下次VSync到来时再显示,因此就会造成卡顿(本来要显示当前帧结果只能显示前一帧)

卡顿解决的主要思路:

  • 尽可能减少CPU、GPU资源消耗
  • 一般我们要保证每秒60帧这样看起来就不会有什么问题了,那按照60FPS的刷帧率,每个16ms就会有一次VSync信号(为什么是16ms?因为1s=1000ms,1000ms/60~16ms)也就是说我们16ms内完成CPU和GPU操作就不会有什么卡顿问题了

喜欢的朋友可以扫描关注我的公众号(多谢支持)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值