[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 


 

C语言嵌入式Linux高级编程第4期:堆栈管理

-
  • 1970年01月01日 08:00

Leaks内存泄露检测

  • 2015年08月12日 15:08
  • 51KB
  • 下载

使用Xcode的Instruments检测解决iOS内存泄露(leak)

在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我们在开发过程中,由于种种原...
  • ljc_563812704
  • ljc_563812704
  • 2017-04-07 15:13:03
  • 2963

iOS学习笔记之xcode工具查看内存泄漏

悬挂指针问题 悬挂指针(Dangling Pointer)就是当指针指向的对象已经释放或回收后,但没有对指针做任何修改(一般来说,将它指向空指针),而是仍然指向原来已经回收的地址。如果指针指向的...
  • ANDY_GUO_wei
  • ANDY_GUO_wei
  • 2017-06-21 18:15:30
  • 1105

xcode8 使用Instruments检测定位并解决iOS内存泄露

简介:虽然苹果出了ARC(自动内存管理机制),我们不用花太多的时间在内存泄漏的问题上,但在我们开发的过程中,还是会因为各种原因而产生内存泄漏,例如Block的循环引用,delegate 写成了 str...
  • Mr_zhangrmwork
  • Mr_zhangrmwork
  • 2017-07-27 17:22:28
  • 4434

iOS性能优化之内存管理:Analyze、Leaks、Allocations的使用和案例代码

最近接了个小任务,和公司的iOS小伙伴们分享下instruments的具体使用,于是有了这篇博客...性能优化是一个很大的话题,这里讨论的主要是内存泄露部分。   一. 一些相关概念 ...
  • zhaojian3513012
  • zhaojian3513012
  • 2016-03-28 16:35:12
  • 1138

使用Xcode的Instruments检测内存泄漏

使用Xcode的Instruments检测内存泄漏
  • qq_32319583
  • qq_32319583
  • 2016-11-26 14:48:44
  • 536

Xcode8 检测内存泄露

xcode8_new.pngSource Editing 主要可说的而是官方集成XCode插件开发,总算有了一个具体的规范,苹果拿来主义也是毫不含糊,在XCode的/Applications/Xcod...
  • bibi333
  • bibi333
  • 2017-01-23 17:29:23
  • 1078

Xcode 静态分析与内存泄漏检查

Xcode 静态分析与内存泄漏检查
  • zhuquan0814
  • zhuquan0814
  • 2016-04-16 15:30:42
  • 4008

iOS性能优化之内存管理:Analyze、Leaks、Allocations的使用和案例代码

一. 一些相关概念 很多人应该比较了解这块内容了...可以权当复习复习... 1.内存空间的划分: 我们知道,一个进程占用的内存空间,包含5种不同的数据区:(1)BSS段:通常是存放未初始化的...
  • u012383818
  • u012383818
  • 2017-10-24 15:57:25
  • 225
收藏助手
不良信息举报
您举报文章:[IPhone]如何使用Leak检查内存泄漏
举报原因:
原因补充:

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