杂记六
一、概述
内存泄漏就是“程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果”。
二、常见的内存泄漏情况:
- 多个对象间的相互强引用
- NSTime的循环引用
- block的循环引用
- delegate的循环引用
- 通知的循环引用
- WKWebView 造成的内存泄漏
三、内存泄漏检测
打开Xcode菜单栏中的Product
选项中的Profile
选项,也可以使用快捷键 command + I
然后在Instruments菜单中找到Leaks
,如下图所示.
打开Leaks
工具之后,我们首先在左上角选择我们需要检测的程序,这里我们可以检测当前Mac上任意一个开启的程序,这里我们选择模拟器的Demo程序,如下所示.
工具默认的是Allocations
选项,然后我们需要选择Leaks选项,点击红色⭕️按钮,启动检测程序.
然后我们运行完成之后,就会得到下面的页面,我们就可以通过页面的信息找到我们内存泄漏的具体位置了.