iOS内存优化

  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内存优化)