前沿
一个 app 的内存分三类:
(1)、Leaked memory: Memory unreferenced by your application that cannot be used again or freed (also detectable by using the Leaks instrument).
(2)、Abandoned memory: Memory still referenced by your application that has no useful purpose.
(3)、Cached memory: Memory still referenced by your application that might be used again for better performance.
其中 Leaked memory 和 Abandoned memory 都属于应该释放而没释放的内存,都是内存泄露,而 Leaks 工具只负责检测 Leaked memory,而不管 Abandoned memory。在 MRC 时代 Leaked memory 很常见,因为很容易忘了调用 release,但在 ARC 时代更常见的内存泄露是循环引用导致的 Abandoned memory,Leaks 工具查不出这类内存泄露,应用有限。
一、Instruments
打开Instruments调试工具控制栏,三个方法:
(1)、按下Command + I打开Instrument;
(2)、Xcode->product->profile;
(3)、Xcode->Open Developer Tool->Instrument
二、Leaks
选择leaks工具,如下图:
三、设置leaks
设置Leaks内选项 选择Leaks, 选择Call Tree
四、运行
设置Call Tree 选择Invert Call Tree , Hide system Libraries, 然后选择Leaks的项目 Target为你运行中的App, 点击红色圆圈运行,操作你App, 有红色的叉就代表有内存泄露,查看相应的代码,解决泄露问题;
双击定位,如图: