内存泄漏监控

为什么要做app内存泄漏监控?

内存泄漏将导致app内存占用变大,成为iphone要kill App的时候优先考虑的对象.

监控内存泄漏的时机

  1. UIViewController调用”dismissViewControllerAnimated:”的时候
  2. UInavigationController调用”popToRootViewControllerAnimated:”等pop方法
  3. UITabbbarViewController、UIPageViewController、UISplitViewController+MemoryLeak需要释放时,对应的内嵌视图控制器也需要释放。

监控小技巧

创建一个block,block持有需要释放的视图的weak指针,当监测时机到时,执行这个block,如果weak指针不为nil,则该试图已经内存泄漏了。

监控对象

  1. 所有需要释放的视图控制器
  2. 视图控制器的View,及其每一层嵌套的Subview

视图树的记录

监测到内存泄漏后,为了方便开发定位到具体泄漏的视图,我们可以泄漏的视图树记录下来。

泄漏后如何及时提醒

泄漏后怎么提醒开发者比较合适呢。

  1. 发现泄漏马上把泄漏的视图树log打印出来
  2. 悬浮一个提醒款,显示当前泄漏的数量
  3. 命中断言(会阻断开发,容易被喷)
Blacktea wechat
ex. subscribe to my blog by scanning my public wechat account
记录生活于感悟,您的支持将鼓励我继续创作!