美文网首页OC开发资料收集区
使用Xcode8的Instruments检测解决iOS内存泄露

使用Xcode8的Instruments检测解决iOS内存泄露

作者: 蜗牛锅 | 来源:发表于2017-06-23 11:36 被阅读67次

    下面就简单介绍下怎么使用Xcode 8自带的Instruments中的Leaks检测我们的程序有没有内存泄露和定位内存泄露的代码.(分析内存泄露不能把所有的内存泄露查出来,有的内存泄露是在运行时,用户操作时才产生的)。

    第一步:打开Xcode8自带的Instruments


    819024-20151009091643924-595728852.png

    或者通过 下面的方法打开

    819024-20151009091749081-130873097.png

    按上面操作,build成功后跳出Instruments工具,选择Leaks选项


    2DD1B073-5447-415A-B7E3-F54C4A8EF827.png

    到这里之后,我们前期的准备工作做完啦,下面开始正式的测试!

    1.选中Xcode先把程序(command + R)运行起来

    2.再选中Xcode,按快捷键(command + control + i)运行起来,此时Leaks已经跑起来了

    3.由于Leaks是动态监测,所以我们需要手动操作APP,一边操作,一边观察Leaks的变化,当出现红色叉时,就监测到了内存泄露,点击右上角的第二个,进行暂停检测(也可继续检测,当多个时暂停,一次处理了多个).如图所示:


    819024-20151009093354378-307036239.png

    4.下面就是定位修改了,此时选中有红色柱子的Leaks,下面有个"田"字方格,点开,选中Call Tree
    5.下面就是最关键的一步,在这个界面的右下角有若干选框,选中Invert Call Tree 和Hide System Libraries,(红圈范围内)显示如下:

    19FD54F6-D0F8-4348-868F-F16A76EC0DC2.png

    到这里就算基本完成啦,这里显示的就是内存泄露代码部分,那么现在还差一步:定位!
    6.选中显示的若干条中的一条,双击,会自动跳到内存泄露代码处,如图所示

    E4D81461-7E5B-4438-82FC-B5E6C21D58A4.png

    7.找到了内存泄露的地方,那么我们就可以修改即可


    D4BC0242-07B2-4C4D-A7BA-3FE6BB6AC304.png

    相关文章

      网友评论

      本文标题:使用Xcode8的Instruments检测解决iOS内存泄露

      本文链接:https://www.haomeiwen.com/subject/nzfccxtx.html