Xcode Instruments系列之Leaks使用教程

Overview

最近几天在进行公司项目的测试,用到了Leaks进行内存泄露的检测。
鉴于网上千篇一律的旧版教程,变萌生了写一篇针对新版Xcode面向萌新的教程。

工具

Xcode 10.1
Instruments

唤起Instruments面板

1、打开Xcode
2、按住command + I 或者 菜单栏Product - Profile(选择真机)
https://img.wangquanwei.com/wp-content/uploads/2019/01/E4688BF7-A960-4236-A49C-1822AF5A992E.jpeg

等待项目编译通过即可打开Instruments面板

Leaks的使用

1、选择Leaks双击 或者 按 choose
https://img.wangquanwei.com/wp-content/uploads/2019/01/E4B56B33-B818-466F-B5C5-E764BD03F1DD.jpeg

2、打开Leaks面板
https://img.wangquanwei.com/wp-content/uploads/2019/01/E39F22EC-8A6F-4743-A191-E79B34934F17.jpeg

3、点击左上角红色点,即可运行内存检测

4、在运行过程中如果发现Leak Checks(如图)出现红色X说明检测到内存泄露,将鼠标点击Leak Checks,在下方即可看到内存泄漏的相关信息

5、定位内存泄露代码位置

第一步:选择Leaks有时候默认是 Run lssues(如图)
https://img.wangquanwei.com/wp-content/uploads/2019/01/F1CE3776-AA02-4BBA-B41C-7325532D7F4C.jpeg

第二步:选择Call Tree
https://img.wangquanwei.com/wp-content/uploads/2019/01/14C1AA68-448D-4867-80B3-E5FF7F05C7CD.jpeg

第三步:选择底部的Call Tree在弹窗中选择Invert Call Tree 和 Hide System Libraries,即可显示出具体内存泄漏的代码,但假如还不显示请看第四步(如图)
https://img.wangquanwei.com/wp-content/uploads/2019/01/473879D1-91EB-4031-9928-126C4ADFDA6C.jpeg

第四步:如果第三步还无法定位到具体代码,则
点击项目工程文件-Buidl Setting-All-搜索Debug Information Format-Debug里选择DWARF with dSYM File(如图)
https://img.wangquanwei.com/wp-content/uploads/2019/01/1FA5A3E6-A3CE-4FFB-A8B9-AE7F468244AD.jpeg

然后重新编译启动Leaks重复上面1-3步骤即可定位到具体代码

例如这里就是我使用第三方库blocksKit,这个库存在内存泄漏

查看内存泄漏引用图

将Call Tree选项改为Cycles & Roots 即可查看,不是所有的都可以查看。

The End

博主大大

假如生活欺骗了你,不要悲伤,不要心急,反正明天也一样~

5 Comments

  • 图片呢

    • @zm 图片丢了,在补了

  • 很幸运能看到你的博客,有个问题一直没有解决。通过XCode --> Profile 然后怎么也没法运行 报错 “ 错误信息标题:App installation failed 具体错误信息:A valid provisioning profile for this executable was not found”。不是证书问题,真机运行没有任何问题。

  • 你这个博客是用什么搭建的

    • @GivenchyLee wordpress + 阿里云服务器

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

猜你喜欢

暂无内容!