美文网首页iOSios iOS 性能优化
两分钟让你学会使用instruments leaks检测内存泄漏

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

作者: Aracya | 来源:发表于2018-06-06 15:52 被阅读262次

    虽然苹果给我们提供了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检测内存泄漏

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