instruments实践

前段时间写项目,突然跳到某一个页面crash了,然后我重新又进来几次,然后又没问题了,以为这是个"意外",也没在意,一段时间后,又发生了一次crash,还是同一个页面,我意识到这不是偶然了,然后开始找原因。关于instruments的使用也看过很多次了,但是一直没怎么用,正好这次用它解决了一个问题,顺便记录一下。在猜测某个页面有问题的情况下,我一般的思路是这样的:

第一步:查看dealloc

看这个页面有没有被释放,在dealloc打上断点,发现页面确实已经释放了,排除这个可能,进行下一步。

第二步:查看内存,cpu

查看运行状态的内存cpu
查看运行状态的内存cpu

我先后两次进入到这个页面,发现刚进入这个页面的瞬间内存飚的很高,然后瞬间又降下来,到这里问题已经变得明显了,这个页面确实存在问题,下面就需要深入的寻找问题所在。

第三步:Profile

直接在上图的右上角点击 Profile in instruments,


查看运行状态的内存cpu
查看运行状态的内存cpu

进入instruments后,我还是重复之前的操作,进入这个问题页面,还是发现了内存飙高的情况,然后我在下面的堆栈里找,发现怎么也找不到到底是哪个方法引起的。


查看运行状态的内存cpu
查看运行状态的内存cpu

然后我发现上面的内存图上有条线可以拖动,然后我就把它拖到内存最高的地方,然后再去下面找,发现还是找不到。
查看运行状态的内存cpu
查看运行状态的内存cpu

最后,我尝试在内存飙高的同时,点击左上角暂停运行,然后再下面的堆栈中继续找,这回终于找到了,是我自己的一个类渲染UI的时候导致的内存问题,找到具体的原因,解决起来也就轻松了。光看果然是没有用的,重要的还是要实践。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值