instruments - >leaks iOS 内存泄漏

(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 工具查不出这类内存泄露,应用有限。

xcode8 打开Instruments;

1.快捷键打开  command +shift + i   或者Xcode->Open Developer Tool ->Instruments

出现如下界面 :

instruments - >leaks iOS 内存泄漏_第1张图片

选择leaks .

2.运行Xcode上的项目 然后在 

instruments - >leaks iOS 内存泄漏_第2张图片

然后在运行leaks. leaks上面会显示红色方块 红色方块就是leaks.

3.点击红色小方块 

然后选择details->call tree ->call tree   

instruments - >leaks iOS 内存泄漏_第3张图片
.


4.设置过滤状态 选择 选中Invert Call Tree 和Hide System Libraries.

效果如图 

instruments - >leaks iOS 内存泄漏_第4张图片

有的xcode不一样  如下 

instruments - >leaks iOS 内存泄漏_第5张图片

然后双击 symbol Name 里面的leaks 名字 就可以跳到 内存泄漏的部分 

5. 如果 显示的是16进制的数据 不是代码的话 那么需要设置一下xcode 选择Bulid Settings 里面的 debug in  选择第二个 DWARF with dSYM File.



instruments - >leaks iOS 内存泄漏_第6张图片


到此就完成了 小伙伴们 去实验吧.

你可能感兴趣的:(instruments - >leaks iOS 内存泄漏)