美文网首页
iOS内存优化

iOS内存优化

作者: HeavenWong | 来源:发表于2018-04-03 12:58 被阅读37次
    • GPU:硬件层面。

    • CPU:软件层面。程序运行时分分配内存。

      1. 对象创建了却没有使用,也没有释放。
      2. 对象一直是nil。
      3. setObject的key和value不能为nil,value为nil也会占用不必要内存。
      4. 用到C函数方法要特别的逐一,C还是MRC机制,例如CoreGraphics库、Core Foundation对象的要特别注意,需要手动释放。
      5. 类对象没有重用好,或者内存分配空间多余。
      6. 错用空指针。
      
    • 从理论上,APP内存泄漏大部分是对象和变量未释放,导致APP运行内存越来越大,直到GPU、CPU其中一方承受不了直接崩溃。但并非完全是未释放的对象和变量引起的泄漏,更多需要借助工具来检查。

    • Xcode提供了检测工具:Analyze、Instruments、Leaks

    一、Analyze静态分析检测

    Analyze静态分析检测不需要运行程序,使用方法:打开xcode项目,按快捷键command + shift + B, 或者是:打开Xcode-->Product-->Analyze,逐一去解决就好了。

    Analyze使用方式之一.png Analyze静态分析检测结果有24条泄漏/鸡肋.png
    Analyze静态分析泄漏位置.png
    例子.png

    二、Instruments

    • Instruments动态分析检测需要运行程序,最好是使用真机调试,真机的GPU硬件跟CPU软件层面跟Mac上模拟器差别有大。使用方式:打开Xcode,Xcode --> Open developer Tool --> Instruments; 或者command + i。经过静态分析之后基本就没什么问题了,Inastruments有时候能指出泄漏的地方具体在哪里,大部分没什么修复意义。
    (1)Leaks
    • Leaks用来分析内存泄漏


      leaks发现泄漏.png
    (2)Allocations
    • Allocations用来分析内存分配情况,


      Allocation.png

    相关文章

      网友评论

          本文标题:iOS内存优化

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