美文网首页
iOS卡顿优化

iOS卡顿优化

作者: Mannyao | 来源:发表于2020-10-13 18:20 被阅读0次

    https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/

    启动优化:
    main函数之前
    1.合并动态库,减少不必要的framework,特别是第三方的。因为动态链接比较耗时。

    1. 删减一些无用的静态变量
    2. 删减没有被调用到或者已经废弃的方法
    3. 将不必须在+load方法中做的事情延迟到+initialize中

    main函数之后:

    1. 尽量使用纯代码编写,减少xib的使用;
    2. 启动阶段的网络请求,是否都放到异步请求;
    3. 避免在主线程进行大量的计算,将与首屏无关的计算内容放在页面展示后进行,缩短 CPU 计算时间
    4. 避免使用大图片,减少视图数量及层级,减轻 GPU 的负担
    5. 只请求首屏相关的网络数据
    6. 本地缓存首屏数据,待渲染完成后再去请求新数据。

    卡顿优化:
    CPU:

    1. 尽量用轻量级的对象,比如用不到事件处理的地方使用CALayer取代UIView
    2. 尽量提前计算好布局(例如cell行高)
    3. 控制一下线程的最大并发数量
    4. 尽量把耗时的操作放到子线程
    5. 高度缓存: 在tableView滑动时,会不断调用heightForRowAtIndexPath:,当 cell 高度需要自适应时,每次回调都要计算高度,会导致 UI 卡顿。为了避免重复无意义的计算,需要缓存高度。
    6. 按需加载: 局部刷新,刷新一个cell就能解决的,坚决不刷新整个 section 或者整个tableView,刷新最小单元元素。 利用runloop提高滑动流畅性,在滑动停止的时候再加载内容,像那种一闪而过的(快速滑动),就没有必要加载,可以使用默认的占位符填充内容。
      GPU:
    7. 尽量避免短时间内大量图片的显示,尽可能将多张图片合成一张进行显示
    8. 尽量避免出现离屏渲染.
    9. 图片显示原始大小

    内存优化?

    相关文章

      网友评论

          本文标题:iOS卡顿优化

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