一个正常的帧的合成,大概是在16.7ms之间,60fps 指的是,在每一秒钟 会有60个画面更新,人眼看上去就是一个流畅的效果。
掉帧的原因:就是CPU与GPU没有在16.7ms 内完成帧的合成。
CPU : UI布局,文本计算,视图绘制,图片解码,画面绘制位图,然后将位图提交给GPU,由GPU 进行涂层的合成,纹理的渲染。准备好画面,然后在下一个信号到来时,进行画面的显示。如果说,CPU的时间过长,那么留给GPU的时间就像对减少了,也就是说当下一个信号到来时,还没有准备好要显示的画面,这样就会缠上掉帧的现象。
优化处理:滑动优化方案:
CPU:
(1)对象创建、调整、销毁 放到子线程中处理。
(2)预排版(布局计算、文本计算放到子线程中处理)
(3)预渲染(文本等异步绘制,图片编解码)
GPU:
(1)纹理渲染 (圆角、mastToBounds ,阴影蒙层等引发离屏渲染)
(2)视图混合(解决方案:CPU异步绘制、减轻视图的复杂度)
UIh
网友评论