天天看点

[IPhone]如何检查内存泄漏

下面是转载的一篇关于iphone程序中出现的内存泄露,如何检测的文章,希望可以对大家有帮助。

简介 

在IPhone程序开发中,内存泄漏是个很容易发生的情况,因为IPhone必须自行作记忆体管理。

现在的开发者,大多习惯用的.NET或Java等有垃圾回收机制的开发语言来作开发,因此可能较不习惯自行释放內存。 

在IPhone程序开发中,使用NSLog直接在控制台印出retainCount也是一个检视內存泄漏的方法,但是XCode提供了更方便的泄漏工具供开发者使用

如何使用Leak 

[IPhone]如何检查内存泄漏

1.如同上图所示,在的XCode工具列,Run=>“Run with Perfromance Tool=>Leak 

2.这样Leak就会启动

[IPhone]如何检查内存泄漏

3.同时我将[m_Images release]注解起来

4.接下来让我们来看执行结果吧! 

[IPhone]如何检查内存泄漏

5.这个是我目前正在开发的游戏专案,由于某个对象会随着游戏进行,会动态产生或从画面移除,因此在绿色框框的地方,可以看到内存的泄漏不段增加 

6.上图下方的列表,告诉我们在CloudAnimation::LoadImage中,有个阵列没被释放

[IPhone]如何检查内存泄漏

7.点击后,就显示了该段编码的情况

[IPhone]如何检查内存泄漏

8.接下来,我将注解掉的测试的编码还原,然后再次执行Leak。 

[IPhone]如何检查内存泄漏

9.原本的内存泄漏就没了 

10.这个图里面看到的一些内存泄漏,是因为那些音乐正在播放,正在使用中的东西,当然不会释放,另外也有部份是SDK中的一个错误。

继续阅读