美文网首页iOS专题iOS面试专题
【iOS】iOS卡顿优化方案

【iOS】iOS卡顿优化方案

作者: 焚雪残阳 | 来源:发表于2020-05-08 11:37 被阅读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资源处理

    相关文章

      网友评论

        本文标题:【iOS】iOS卡顿优化方案

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