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

终于忙完一段时间了,是时候监测一波项目的内存泄漏情况了
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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容