文/笨笨的糯糯(简书作者)
原文链接:http://www.jianshu.com/p/0837331875f0
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

作为一名iOS开发攻城狮,在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我们在开发过程中,由于种种原因,还是会出现内存泄露的问题.内存泄露是一个很严重的问题.下面就简单介绍下怎么使用Xcode7自带的Instruments中的Leaks检测我们的程序有没有内存泄露和定位内存泄露的代码.(分析内存泄露不能把所有的内存泄露查出来,有的内存泄露是在运行时,用户操作时才产生的)

第一步:打开Xcode7自带的Instruments

或者:

按上面操作,build成功后跳出Instruments工具,选择Leaks选项

选择之后界面如下图:

到这里之后,我们前期的准备工作做完啦,下面开始正式的测试!

1.选中Xcode先把程序(command + R)运行起来

2.再选中Xcode,按快捷键(command + control + i)运行起来,此时Leaks已经跑起来了

3.由于Leaks是动态监测,所以我们需要手动操作APP,一边操作,一边观察Leaks的变化,当出现红色叉时,就监测到了内存泄露,点击右上角的第二个,进行暂停检测(也可继续检测,当多个时暂停,一次处理了多个).如图所示:

4.下面就是定位修改了,此时选中有红色柱子的Leaks,下面有个"田"字方格,点开,选中Call Tree

显示如下图界面

5.下面就是最关键的一步,在这个界面的右下角有若干选框,选中Invert Call Tree 和Hide System Libraries,(红圈范围内)显示如下:

到这里就算基本完成啦,这里显示的就是内存泄露代码部分,那么现在还差一步:定位!

6.选中显示的若干条中的一条,双击,会自动跳到内存泄露代码处,如图所示

7.找到了内存泄露的地方,那么我们就可以修改即可

转载于:https://www.cnblogs.com/xjy-123/p/5267565.html

使用Xcode7的Instruments检测解决iOS内存泄露相关推荐

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

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

  2. 【工程项目经验】之Xcode的Instruments检测解决iOS内存泄露

    参考网址:http://www.cnblogs.com/iOSv587country/p/4862989.html

  3. 使用Xcode和Instruments调试解决iOS内存泄露(转)

    转自:http://blog.csdn.net/totogo2010/article/details/8233565 虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还 ...

  4. 使用Xcode和Instruments调试解决iOS内存泄露【转】

    转载自:http://blog.csdn.net/totogo2010/article/details/8233565 虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露 ...

  5. 使用Xcode和Instruments调试解决iOS内存泄露

    虽然iOS 5.0版本之后加入了ARC机制,但由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露 ...

  6. iOS 【使用Xcode和Instruments调试解决iOS内存泄露】

    虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...

  7. 精准 iOS 内存泄露检测工具

    MLeaksFinder:精准 iOS 内存泄露检测工具 发表于 2016-02-22   |   zepo   |   23 Comments 背景 平常我们都会用 Instrument 的 Lea ...

  8. iOS内存泄露监测和修复

    内存泄露的相关概念: 如果程序运行时一直分配内存而不及时释放无用的内存,程序占用的内存越来越大,直到把系统分配给该APP的内存消耗殚尽,程序因无内存可用导致崩溃,这样的情况我们称之为内存泄漏. 内存泄 ...

  9. Android 解决handler内存泄露的方法

    文章目录 1.简介 2.方法一避免Handler 泄露 3.方法二添加弱连接 1.简介 大体理解为: Handler 在使用的时候一般要依附于一个对象,很多时候 handler 延时发送的时候 ,所依 ...

最新文章

  1. 为什么java可跨平台执行,java为什么可以跨平台执行
  2. 戴琼海:人工智能的几点思考
  3. matlab三位画图_matlab 3D绘图详解(示例代码)
  4. P2617 Dynamic Rankings(主席树+树状数组)
  5. mysql schema数据混乱_MySQL之Schema与数据类型优化
  6. 挑战 TensorFlow、PyTorch,“后浪”OneFlow 有没有机会?
  7. 试述计算机控制系统的大致组成,试述工业计算机控制系统的组成及应用
  8. 写弹窗时防止底层滚动
  9. 天文坐标系的转换 时角坐标和赤道坐标系的转化
  10. 计算机识别不了佳能打印机,佳能打印机不能打印如何解决 佳能打印机不能打印解决方法【介绍】...
  11. openCV5-getTickCount
  12. 高数——两个重要极限
  13. 支付宝支付服务端对接记录(小程序/APP 预支付统一下单及回调处理)
  14. win7 计算器 android,强大的Win7计算器
  15. JavaScript预解析
  16. Pyflink系列之使用pyflink实现flink大数据引挚的经典案例wordcount
  17. 词向量与词向量拼接_如何拥抱 embedding ?从词向量到句向量的技术详解-阿里云开发者社区...
  18. (Cys-RGD)包被CdTe量子|3-巯基丙酸(MPA)包被近红外发光CdTe量子
  19. js控制excel打印完美解决方案
  20. python求特征值以及特征向量,并且输出最小特征值对应的特征向量

热门文章

  1. C++中用TinyXML对XML文件进行解析
  2. 解含待定变量微分方程组
  3. 【python】直方图均衡化和自适应均衡化图像
  4. 抖音下拉词推广是什么?
  5. java备份mysql的单个表_MySQL 使用java备份某张表的操作
  6. python3.8安装pyinstaller失败_pip命令安装 pyinstaller失败解决办法
  7. java的位桶是什么_Java关于桶排序的知识点总结
  8. aix oracle集群日志,在AIX环境下实施Oracle 集群RAC的结构 文平
  9. 折线图笔记 -python
  10. mysql 覆盖索引 简书_mysql覆盖索引与回表