简介 
在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

ios 检查内存泄露的更多相关文章

  1. 如何让xcode自动检查内存泄露

    在project-setting中找到 “Run Static Analyzer” 键,然后把值修改为“YES”.这样在编码的时候,xcode就可以自动为我们检查内存泄露了. 原图片:http://b ...

  2. iOS-如何让xcode自动检查内存泄露

    在project-setting中找到 “Run Static Analyzer” 键,然后把值修改为“YES”.这样在编码的时候,xcode就可以自动为我们检查内存泄露了.

  3. 在Blade中结合gperftools检查内存泄露

    Blade是我们开发的大规模C++项目构建工具. gperftools是google开发的性能工具,由高效内存分配器,CPU性能分析器,堆分析器,堆检查器等工具组成. 和其他构建工具不同,结合gtes ...

  4. ios Instruments 内存泄露

    本文转载至 http://my.oschina.net/sunqichao/blog?disp=2&p=3 虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是 ...

  5. vs 2010中如何检查内存泄露

    首先,在文件头添加下面的内容: #ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else# ...

  6. Android Monkey 脚本编写与检查内存泄露

    一.Monkey脚本编写 1.Monkey脚本格式 脚本优势: 简单快捷,不需要接触任何工具,只需要一个记事本文件 脚本缺点: 实现坐标.按键等基本操作的相应步骤,顺序脚本无逻辑性 脚本源码: \de ...

  7. visual studio如何检查内存泄露?

    Visual Studio有专门的插件叫做Visual Leak Detector (VLD)Visual Leak Detector for Visual C++ 2008/2010/2012/20 ...

  8. erlang中检查内存泄露

    最近项目内存占用过多,检查一下erlang的内存使用情况. 1. 通过etop可以很方便得出erlang内存使用的情况 spawn(fun() -> etop:start([{output, t ...

  9. Monkey学习笔记<五>:检查内存泄露

    1.分析内存泄漏工具与命令 1)HPROF文件:HPROF可以监控CPU使用率,堆分配统计 2)MAT工具:下载地址(http:www.eclipse.org/mat/) 3)生成HPROF文件命令: ...

随机推荐

  1. 計蒜客/小教官(xjb)

    題目鏈接:https://nanti.jisuanke.com/t/366 題意:中文題誒~ 思路: 先通過給出的條件構造一個符合題意的數組(可以是任意一個符合條件的數組,菜雞不會證明: 然後構造的數 ...

  2. python 之 函数 迭代器

    5.9 迭代器 5.91 可迭代对象和迭代器对象 1.什么是迭代?:迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 2.要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象? ...

  3. Mysql 到 Hbase 数据如何实时同步,强大的 Streamsets 告诉你

    很多情况大数据集群需要获取业务数据,用于分析.通常有两种方式: 业务直接或间接写入的方式 业务的关系型数据库同步到大数据集群的方式 第一种可以是在业务中编写代码,将觉得需要发送的数据发送到消息队列,最 ...

  4. JTextArea设置滚动条

    应将JTextArea置于JScrollPanel中 若要使只有垂直滚动条而没有水平滚动条,使用JTextArea.setLineWrap(true),自动换行.   以下摘自[url]http:// ...

  5. Python-7-字典方法

    clear 删除所有字典项 >>> d = {} >>> d['name'] = 'Gumby' >>> d['age'] = 42 >&g ...

  6. 在开发中经常会有多级跳转 viewcontroller的问题,然后有时不一定要一级一级的返回,可能直接返回到某个根视图控制器或某个指定的控制器.

    其中采用navigationController pushViewController 的方法,比如我从主页面跳转到了4级页面,又从4级页面跳转到了2级页面,然后从2级页面跳转到了4级页面然后在重4级 ...

  7. DRF教程6-分页

    rest框架提供自定义分页样式,让你修改再每个页面上显示多少条数据, pagination API 可以: 分页链接作为响应内容的一部分 分页链接包含在响应头里,比如Content-Range or  ...

  8. C#基础之析构函数

  9. Sawgger框架

    简介详情:https://blog.csdn.net/sanyaoxu_2/article/details/80555328

  10. python学习之高级特性:

    切片:对列表.元组.字符串.字典取中间的一部分,在C中一般是通过for循环拷贝/memcpy/strcat等操作.而python提供了更方便的切片操作符[m:n]:前闭后开,如果从0取m可以省略:如果 ...