你真的会使用Xcode instruments查找内存泄漏吗?

很多朋友在面试中都会被问到这个问题,结果答地并不好,这是其实是实操的问题

我今天就和大家简单分享一下怎么使用这个leak检测工具.直接上图:


点击上面Profile ,稍等便可进入Xcode内部自带的instruments工具


你真的会使用Xcode instruments查找内存泄漏吗?_第1张图片

点击进去后,点击左上角的红点,可以进行内存检测


你真的会使用Xcode instruments查找内存泄漏吗?_第2张图片

这里可以内存多少,有多少对象内存泄漏

你真的会使用Xcode instruments查找内存泄漏吗?_第3张图片

点击下边leak checks ,可以看到下边栏有三个选项 leak,Cycles & Roots, Call Tree,分别对应的是内存泄漏,循环引用,调用树. leak点击右边红框类可以进入内存泄漏的代码区域. 

你真的会使用Xcode instruments查找内存泄漏吗?_第4张图片

Cycles & Roots 可以看到循环引用的环,我的成环图找不到了,从Detail中是可以分为simple Cycle 简单环(两个对象),还是Complex Cycle复杂环(涉及多个对象引用成环).

你真的会使用Xcode instruments查找内存泄漏吗?_第5张图片

Call Tree 就是调用堆栈,如果你的内存泄漏都是第三方框架之中,那么极有可能是你使用第三方不当所致,可以好好看一下调用堆栈,是哪里调用了.红框中区域表示内存的泄漏出现的概率.

你真的会使用Xcode instruments查找内存泄漏吗?_第6张图片

下面是我找到的调用堆栈中泄漏代码中方法出处:人头标志是程序员自己写的代码

你真的会使用Xcode instruments查找内存泄漏吗?_第7张图片

其实,还是那句话:第三方虽然简单,几句话搞定,但是你不懂原理,还是会使用出问题来.

写代码做事情,还是要知其然还要知其所以然才行.

今天分享就到这里了.

你可能感兴趣的:(你真的会使用Xcode instruments查找内存泄漏吗?)