iOS内存优化

作者: 再好一点点 | 来源:发表于2021-12-04 21:15 被阅读0次
    1. 把view设置为不透明,不透明的Views应该设置它们的opaque属性为YES。默认为 YES。
      a) 如果视图存在半透明会导致在GPU里边最后合成像素颜色的时候获取多个图层的颜色进行混合,处于半透明中的每个像素都会执行颜色计算操作,浪费资源。

    2. 对于仅使用一次或是使用频率很低的大图片资源不要使用UIImage(named: "")而使用UIImage(contentsOfFile: "")
      a) UIImage(named: "")返回的对象会保存在缓存中,只有退出程序才会释放内存;但下一次调用快。
      b) UIImage(contentsOfFile: "")返回的对象不会保存在缓存中,一旦对象销毁就会释放内存。

    3. 基于颜色创建纯色的图片时,只需要创建出宽和高均为1px大小的图像就够了

    4. 在自定义的UIView子类中,利用drawRect:方法进行绘制改为CAShapeLayer
      a) 自定义drawRect会使APP消耗大量的内存,视图越大,消耗的越多
      b) 大部分情况下,绘制需求都可以通过CAShapeLayer实现,CAShapeLayer属于CoreAnimation框架,通过GPU来渲染图形,节省性能。
      c) 动画渲染直接提交给手机GPU,不消耗内存渲染快速。
      d) CAShapeLayer使用了硬件加速,绘制同一图形会比用Core Graphics快很多。

    5. 在Image Views中尽量保证图片的大小和UIImageView的大小相同,在运行中缩放图片是很耗费资源的
      a) 如果要修改大小可以在后台线程中修改大小并解码、绘制。

    6. 重用和延迟加载(lazy load) Views

    7. 大图分片加载
      a) 苹果demo

    8. 大量局部变量使用自动释放池

    相关文章

      网友评论

        本文标题:iOS内存优化

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