美文网首页IOS实用干货Instruments
iOS 使用Instruments的Leaks工具进行内存泄漏分

iOS 使用Instruments的Leaks工具进行内存泄漏分

作者: BetterComingDay | 来源:发表于2017-05-16 17:08 被阅读83次

    终于忙完一段时间了,是时候监测一波项目的内存泄漏情况了
    Xcode ---> Product ---> Profile 打开Instruments,然后选择Leaks
    Instrument打不开可以参考iOS Instruments打不开解决方法

    下图是我们的项目泄漏情况:

    Snip20170516_1.png

    看起来貌似还可以红叉不是太多,
    下边就是解决这些内存泄漏了。

    1、选中Leak Checks
    Snip20170516_2.png
    2、选中call tree

    call tree的官方解释:Separate By Thread(线程分离,只有这样才能在调用路径中能够清晰看到占用CPU最大的线程.)

    Snip20170516_4.png

    勾上call tree侧边栏的Invert Call Tree 和 Hide System Libraries 两项选项

    Snip20170516_5.png

    Invert Call Tree 的意思是翻转调用树,直接定位到内存泄漏的那个方法,如果不勾选会显示最外层的函数,我们还要手动展开。可以点选看下效果
    Hide System Libraries 的意思很明显了。就是隐藏系统类库,避免一些莫名其妙的,我们无法改动的信息迷惑我们。

    3、泄漏列表
    Snip20170516_6.png
    以第三个泄漏为例进行解决
    双击第三行定位到具体泄漏的函数,泄漏的字节数都标出来了,如此强大
    Snip20170516_8.png
    哈哈,问题找到了,显而易见,c语言的方法需要手动释放内存。哪些方法需要释放内存呢?
    解决方法如下,
    Snip20170516_10.png

    修改代码之后泄漏不见了。


    Snip20170516_11.png

    快去你们的项目里边查看一波吧!

    相关文章

      网友评论

        本文标题:iOS 使用Instruments的Leaks工具进行内存泄漏分

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