iOS专题iOS面试专题

【iOS】iOS卡顿优化方案

2020-05-08  本文已影响0人  焚雪残阳

一、页面卡顿的原因

图像的显示原理:图像的显示需要GPU和CPU两者配合,CPU主要负责视图的创建,布局的计算和视图的绘制,然后进行图片的解码,将生成的位图交给GPU,GPU进行渲染,并将渲染的结果交到帧缓冲区,待下一个VSync 信号到来的时候视频控制器从帧缓冲区取出数据,经过转换,显示到屏幕上。如果在规定的16.7ms内,CPU和GPU的合作未完成,没有生成新的渲染数据到帧缓冲区中,那么就会出现卡顿或者掉帧的情况。

二、页面卡顿优化方案

那么针对卡顿和掉帧的优化方案,在知晓了图像显示需要CPU和GPU配合工作后,就可以从CPU和GPU两方面入手:

CPU
  1. 对象的创建和销毁放到子线程中做
  2. 布局计算和文本计算放到子线程中异步处理
  3. 使用轻量级对象,如CALayer代替UIView
  4. 文本异步绘制
  5. 控制并发线程数量
  6. 减少重复计算布局,减少修改frame等
  7. 使用frame布局而非AutoLayout
  8. 使图片的size和frame一致
GPU
  1. 避免离屏渲染
  2. 视图混合,减少透明视图,减少视图层级复杂性
  3. 纹理的尺寸要控制,GPU能处理的纹理最大为4096*4096,一旦超过,则会调用CPU资源处理
上一篇下一篇

猜你喜欢

热点阅读