Overview
最近几天在进行公司项目的测试,用到了Leaks进行内存泄露的检测。
鉴于网上千篇一律的旧版教程,变萌生了写一篇针对新版Xcode面向萌新的教程。
工具
Xcode 10.1
Instruments
唤起Instruments面板
1、打开Xcode
2、按住command + I 或者 菜单栏Product – Profile(选择真机)
等待项目编译通过即可打开Instruments面板
Leaks的使用
3、点击左上角红色点,即可运行内存检测
4、在运行过程中如果发现Leak Checks(如图)出现红色X说明检测到内存泄露,将鼠标点击Leak Checks,在下方即可看到内存泄漏的相关信息
5、定位内存泄露代码位置
第一步:选择Leaks有时候默认是 Run lssues(如图)
第三步:选择底部的Call Tree在弹窗中选择Invert Call Tree 和 Hide System Libraries,即可显示出具体内存泄漏的代码,但假如还不显示请看第四步(如图)
第四步:如果第三步还无法定位到具体代码,则
点击项目工程文件-Buidl Setting-All-搜索Debug Information Format-Debug里选择DWARF with dSYM File(如图)
然后重新编译启动Leaks重复上面1-3步骤即可定位到具体代码
例如这里就是我使用第三方库blocksKit,这个库存在内存泄漏
查看内存泄漏引用图
将Call Tree选项改为Cycles & Roots 即可查看,不是所有的都可以查看。