UI卡顿掉帧的原因

一个正常的帧的合成,大概是在16.7ms之间,60fps 指的是,在每一秒钟 会有60个画面更新,人眼看上去就是一个流畅的效果。

掉帧的原因:就是CPU与GPU没有在16.7ms 内完成帧的合成。

CPU : UI布局,文本计算,视图绘制,图片解码,画面绘制位图,然后将位图提交给GPU,由GPU 进行涂层的合成,纹理的渲染。准备好画面,然后在下一个信号到来时,进行画面的显示。如果说,CPU的时间过长,那么留给GPU的时间就像对减少了,也就是说当下一个信号到来时,还没有准备好要显示的画面,这样就会缠上掉帧的现象。

优化处理:滑动优化方案:

CPU:
(1)对象创建、调整、销毁 放到子线程中处理。
(2)预排版(布局计算、文本计算放到子线程中处理)
(3)预渲染(文本等异步绘制,图片编解码)
GPU:

(1)纹理渲染 (圆角、mastToBounds ,阴影蒙层等引发离屏渲染)
(2)视图混合(解决方案:CPU异步绘制、减轻视图的复杂度)

UIh

你可能感兴趣的:(UI卡顿掉帧的原因)