美文网首页2016技术笔记
2016笔记——Leaks

2016笔记——Leaks

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 11:18 被阅读8次

    Instrument如此强大,为何不好好使用呢?

    先来看看前几天就代理展开的讨论(代理为什么要用weak修饰)。

    现在来看看能不能检测到leak。

    首先Command + I 打开Instrument,进入如下界面:

    屏幕快照 2016-02-29 16.00.44.png

    选择Leaks,然后就会进入如下界面:

    屏幕快照 2016-02-29 16.01.52.png

    店家左上角的红色按钮,运行模拟器。

    界面就会如下显示:

    屏幕快照 2016-02-29 16.03.14.png

    看到第二行(Leak Checks)的红色叉叉了么?

    好了,有事干了,发生内存泄漏了。

    选中第二行(Leak Checks),界面显示如下:

    屏幕快照 2016-02-29 15.56.19.png

    看到中间的菜单栏了吗?对,点击到Leaks,它会变成这个样子:

    屏幕快照 2016-02-29 15.56.44.png

    我们切换到Call Tree,界面此时是这样的:

    屏幕快照 2016-02-29 15.57.08.png

    剩下就关键了,界面的右下侧有一个菜单边栏,我们需要进行勾选Invert Call Tree和Hide System Libraries。

    屏幕快照 2016-02-29 15.57.19.png

    此时,界面下部显示的分析内容就变成这样了:

    屏幕快照 2016-02-29 15.57.30.png

    OK了,定位到代码了,双击某一行,然后会跳转到对应的文件中:

    屏幕快照 2016-02-29 16.14.20.png

    剩下的就是修改了,这里不再拓展。

    额外的收获:

    中间的菜单栏,分别为Leaks、Cycles && Roots、Call Tree.我点击了一下Cycles && Roots,然后是这样的效果了:

    屏幕快照 2016-02-29 15.57.44.png

    哇哦,直接帮我分析出来是怎么出现泄漏的了呀,Person 通过属性引用Dog,Dog通过delegate引用Person。真的好厉害呀~

    此外,可能觉得对其中的灰色的菱形中的-号有点迷糊,说一下,其实那个是自动拍照,我们可以设置它自动拍照的时间间隔:

    屏幕快照 2016-02-29 16.21.23.png

    默认是十秒,我这里改为3秒,然后就是这样的效果啦~么么哒

    加油~

    相关文章

      网友评论

        本文标题:2016笔记——Leaks

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