[IPhone]如何使用Leak检查内存泄漏

原创 2010年07月22日 11:28:00

简介
在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中的一个错误。

 

补充:如何在xcode4启动instruments 


 

相关文章推荐

[IPhone]如何使用Leak检查内存泄漏

简介  在IPhone程式开发中,记忆体泄漏(内存泄漏)是个很容易发生的情况,因为IPhone必须自行作记忆体管理。 现在的开发者,大多习惯用的。NET或Java的等有垃圾回收机制的开发语言来作开...

[IPhone]如何使用Leak检查内存泄漏

原:http://blog.csdn.net/cloudhsu/article/details/5754818 简介  在IPhone程式开发中,记忆体泄漏(内存泄漏)是个很容易发生的情况...

使用_CRTDBG_LEAK_CHECK_DF检查VC程序的内存泄漏(转)

原文链接:http://www.cnblogs.com/qq78292959/archive/2011/05/28/2076605.html 我们知道,MFC程序如果检测到存在内存泄...

实操VS2015配置内存泄漏检查工具Visual Leak Detector

VS配置及使用 Visual Leak Detector (检测内存泄漏工具)  下载VLD,可以去官网下载. http://vld.codeplex.com/ 默认安装后记录安装目录(以下简...

VC环境下检查内存泄漏memory leak的方法

通过改写delete new方法,我们可以记录内存分配的地址,数量。因此,也就可以知道哪此内存在程序结束后没有释放。 将如下代码改存放为trace.cpp ,将trace.cpp放入要检测的工程...
  • xjbclz
  • xjbclz
  • 2016年06月28日 21:52
  • 591

使用Purify检查内存泄漏

  • 2016年01月03日 13:03
  • 1.42MB
  • 下载

[IPhone]如何检查内存泄漏

下面是转载的一篇关于iphone程序中出现的内存泄露,如何检测的文章,希望可以对大家有帮助。 简介  在IPhone程序开发中,内存泄漏是个很容易发生的情况,因为IPhone必须自行作...

使用Visual Leak Detector检测内存泄漏

转自:http://www.51testing.com/?uid-106738-action-viewspace-itemid-82006今天是2011-2-11,codeproject不知为何上不去...

使用Visual Leak Detector库来检测CRT类型内存泄漏

要想使用VLD很简单,只要在代码前包含VLD.h,如下例: #include "stdafx.h" #include "vld.h" int main(int argc, char* argv[...
  • dj0379
  • dj0379
  • 2011年10月09日 15:24
  • 1107
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[IPhone]如何使用Leak检查内存泄漏
举报原因:
原因补充:

(最多只允许输入30个字)