美文网首页
UI卡顿、掉帧

UI卡顿、掉帧

作者: 滨滨_57b5 | 来源:发表于2018-12-17 08:50 被阅读0次

原因

  • 手机上页面刷新频率位60FPS,即1秒有60帧画面的刷新
  • 1帧画面就是1/60ms即16.7ms
  • 在16.7ms内需要由CPU和GPU协同完成产生1帧画面
1544691001603.jpg
  • CPU花费一定时间做视图的布局,文本的计算,视图的绘制及图片解码等操作,最终将产生的位图提交给GPU
  • GPU花费一定时间做图层的合成,纹理的渲染等操作,然后准备好下一帧画面,在下一个VSync信号到来前,将该帧画面显示出来
  • 如果CPU进行的相关操作很耗时,那么留给GPU的时间就不够了,当下一个VSync信号到来时,没有将该帧画面显示,那么就会被跳过,由此产生了掉帧,最终效果造成了滑动的卡顿

总结:在规定的16.7ms内,在下一帧垂直同步信号到来前,并没有由CPU和GPU完成下一帧画面的合成,于是就会导致掉帧,从而造成卡顿

优化解决方案

CPU方面

减轻CPU工作时长和压力,来达到优化的效果

  • 对象创建、调制、销毁放入子线程
  • 预拍版(UI布局计算、文本计算)
  • 预渲染(文本等异步绘制,图片编解码)
GPU方面
  • 纹理渲染
  • 视图混合(图层层级很多的情况下)

相关文章

网友评论

      本文标题:UI卡顿、掉帧

      本文链接:https://www.haomeiwen.com/subject/srebhqtx.html