iPhone开发应用之用Leak工具检查内存泄漏是本文要介绍的内容,主要是来了解在iPhone开发中,内存泄漏是个很容易发生的情况,因为iPhone必须自行作内存管理。现在的开发者,大多习惯用的.NET或Java的等有垃圾回收机制的开发语言来作开发,因此可能较不习惯自行释放內存。
背景
从我首次接触的Xcode开发iPhone应用已有三个半月,这段时间中,我看过不少如何找出内存泄漏的文章,可是由于基本观念不够好,绕了不少远路。在iPhone程式开发中,使用NSLog直接在控制台印出retainCount也是一个检视內存泄漏的方法,但是的XCode提供了更方便的泄漏工具供开发者使用。介于自身观念较差,因此刚开始使用泄漏的时候,也花了不少时间走过弯路,因此写下自身经验,期望能帮助更多开发者。
如何使用Leak,如图:
1、如同上图所示,在的XCode工具列,Run=>“Run with Perfromance Tool=>Leak
2、这样Leak就会启动,如图:
3、同时我将[m_Images release]注解起来
4、接下来让我们来看执行结果吧,如图:
5、这个是我目前正在开发的游戏专案,由于某个对象会随着游戏进行,会动态产生或从画面移除,因此在绿色框框的地方,可以看到内存的泄漏不段增加
6、上图下方的列表,告诉我们在CloudAnimation::LoadImage中,有个阵列没被释放,如图:
7、点击后,就显示了该段编码的情况,如图:
8、接下来,我将注解掉的测试的编码还原,然后再次执行Leak,如图:
9、内存泄漏就没了
10、这个图里面看到的一些内存泄漏,是因为那些音乐正在播放,正在使用中的东西,当然不会释放,另外也有部份是SDK中的一个错误。
小结:iPhone开发应用之用Leak工具检查内存泄漏的内容介绍完了,希望通过本文的学习能对你有所帮助!