正在加载今日诗词....
2 min read

iOS memory debug

Xcode 内存调式工具 - memory debugger
iOS memory debug

Xcode 8 以后出现的 memory debugger 是一个很不错的调试工具, 可以将项目中常见的 retain cycle 很容易的发现.

memory debugger

点击图示中下方的按钮 , 显示 memory debugger 面板

  • 左侧是堆区对象的分配情况
  • 中间是具体对象的引用关系
  • 右侧是对象的辅助说明

使用方法

  • 紫色感叹号,表明此处有 runtime issue, 基极可能是一处内存泄露问题
  • 左下方 是一个 filter, 可以过滤你想要的对象: 只显示泄露对象或者指定条件的对象
  • 点击左侧有紫色感叹号的泄露对象, 可以在中间显示该对象的所有引用关系
  • 如中间面板的循环引用, 点击一条连线(表示引用关系), 可以在右侧面板查看具体的 连线引用 是 强引用还是弱引用 , 还有其sourcedestination
  • 点击具体的对象,可以右击,查看该对象定义的地方, 可以查看其内存描述

Retain Cycle

典型的循环引用, 我们只需要打破循环就可以

  • 强制将一个 node 环节置为 nil
  • 将某个 node 的引用改为 弱引用, 或使用 weak dance

retain cycle