两分钟让你学会使用instruments leaks检测内存泄漏

虽然苹果给我们提供了ARC(自动内存管理模式)的开发环境,但是在日常开发中也不排除会出现内存泄漏问题

检测内存泄漏有很多方法,本篇文章介绍的是xcode自带工具instruments

嗯,不多说,快速入门

第一步(进工具)

首先我们xocde(当前版本9.4)连接真机,product -> profile进入instruments工具,然后选择leaks(图1,图2)


图1


图2

第二步(检测)

点击左上角红色圆圈,开始录制,此时手机会进入我们的app,leaks是动态监测,我们需要操作我们的app,同时观察leak变化,当出现红色叉子的时候,就说明出现了内存泄漏(图3)


图3

注意:有一部分同学在选择call tree后,可能会查看不到源码,只是显示16进制的数据。此时需要你在Xcode中检查是否有dSYM File生成,如下图所示选择DWARF with dSYM File即可.如下图


第三步(定位)

我们找到左下角Leaks>田Leaks>Leaks by Backtrace,如图4所示点击,选择Call Tree

图4

然后我们在最下方,calltree勾选两个选项,Invert Call Tree 和Hide System Libraries,如图5


图5

注: Invert Call Tree 这个选项可以快捷的看到方法调用路径最深方法占用CPU耗时.把调用层级最深的方法显示在最上面,更容易找到最耗时的操作。

      Hide System Libraries英文再不好的也可以看懂,应该不用解释(隐藏系统的函数).

这会(图6)呈现出来的就是工具帮我们定位的发生内存泄漏的地方,我们只需要双击其中一行,就能看到发生内存泄漏的代码位置(图7)

图6
图7

搞定

instruments除了leaks,还有很多有用的工具,比如Time Profiler.Allocations等,对app做个全面检测,更改不足之处,尽可能的优化app......

你可能感兴趣的:(两分钟让你学会使用instruments leaks检测内存泄漏)