IOS应用内存泄露问题的检测及定位

IOS应用内存泄露问题的检测及定位

问题描述:最近新开发了一个Puzzle项目,场景内容包含35个,发现每次选择最多块数的时候会出现崩溃bug,Xcode的Bug日志也不太能看出来问题所在,直到看到“Terminated due to memory issue”才发现是内存泄露问题导致。

最大的问题就是无法定位到内存泄露的具体位置,想改也无从下手,经过不断的查找最终找到了如何检测内存泄露以及准确定位到内存泄露的位置。

工具——Instruments
开发工具:Xcode
查找位置:
1.Xcode->OpenDevelper Tool->Instruments
2.Product->Profile
两种方法都可以进入下面场景,直接选择Leaks即可
在这里插入图片描述
3.除了上述两种方法还有一种方法,即打开之后可以运行自己的项目了,在Navigator栏的Debug Navigator (调试管理器)下,点开Memory一项,在MemoryReport区右上角点击Profile Instruments如下图
在这里插入图片描述
弹出对话话选择transfer/Profile(Xcode版本不同,出现的对话框不同),即可打开内存检测工具。如下图(我的Xcode版本:13.0):
在这里插入图片描述

检测内存泄露
注:该工具为实时监测,所以需要实时运行App,在觉得有问题的地方多测测,如下图
在这里插入图片描述

定位内存泄露
1.出现内存泄露时会出现红叉
2.Leaks–>Call Tree
3.点击页面底部栏的Call Tree(此处指的是Xcode8以上, Xcode7在右下角),选择InvertCallTree和Hide System Libraries
4.此时界面显示是就是内存泄漏的代码部分,最后一步就是定位了,此时双击代码行,或者右键选择reveal in Xcode即可定位到内存泄漏的代码行

至此便找到了内存泄露问题及具体位置。
参考文献链接:https://www.sohu.com/a/278776433_216613

希望能给大家带来帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值