版权声明:本文为博主原创文章,未经博主允许不得转载。

使用Analyze和Instruments-Leaks分析解决iOS内存泄露

 
实验的开发环境:Xcode 7
 

一、使用Product-Analyze分析内存泄( 快捷键: cmd + shift + B )

APP程序开发完成后,可以利用Xcode的Analyze就能分析到哪里有内存泄露。

分析之后可以看到:

这里提示model没被释放,有内存泄露,那我们释放

[model  release];

再Analyze分析,显示Build succeeded,不存在任何内存泄露,表明这个问题解决了。

二、使用Instruments的leaks工具分析内存泄露( 快捷键: cmd + ctrl + I )

利用Product-Analyze分析内存泄露,并不能把所有的内存泄露查出来,因为有的内存泄露是在运行时,用户操作时才产生的。那就需要用到Instruments了。

1.

Xcode打开一个已完成项目,选好模拟器,点击Run,让程序跑起来。

2.

点击Xcode菜单栏 Product -- Profile ( 快捷键: cmd + ctrl + I )。

 
 
3.
按上面操作,显示Build succeeded后,会跳出Instruments工具,选择Leaks(水龙头)选项。
 
4.
先按下红色的圆形按钮,再选择Leak,然后选择Call Tree,勾选选中Invert Call Tree 和Hide System Libraries。
 
 
5.
在模拟器中测试App各项功能,查看是否有代码出现内存泄露。
 
 
 6.
定位内存泄露代码,并修改。
将故意注释掉的[model release];代码打开。
 
7.
再次测试是否存在内存泄露。

在添加了[model release];代码后,再重新Run,然后cmd + ctrl +I, 切换到Leaks界面,无论再怎么点击“加载音乐”按钮,都检测不到内存泄露了,表明内存泄露被堵住了。

使用Analyze 和Instruments-Leaks分析解决iOS内存泄露的更多相关文章

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

    转载自:http://www.uml.org.cn/mobiledev/201212123.asp  (或者http://www.cocoachina.com/bbs/read.php?tid=129 ...

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

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

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

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

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

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

  5. 使用Xcode7的Instruments检测解决iOS内存泄露

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

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

    https://www.jianshu.com/p/9bc7e65fc247 2017.07.27 17:24* 字数 628 阅读 1319评论 6喜欢 21 简介: 虽然苹果出了ARC(自动内存管 ...

  7. (转载--修改)使用Xcode9的Instruments检测解决iOS内存泄露

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

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

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

  9. 解决iOS内存泄露

    文章很好,摘自:http://www.codeceo.com/article/xcode-instruments-ios-memory.html 虽然iOS 5.0版本之后加入了ARC机制,由于相互引 ...

随机推荐

  1. 第7章 征服CSS3选择器(下)

    :enabled选择器 在Web的表单中,有些表单元素有可用(":enabled")和不可用(":disabled")状态,比如输入框,密码框,复选框等.在默认 ...

  2. 用一个小例子来谈谈javascript的运行机制

    先上例子! <script type="text/javascript"> console.log('博'); setTimeout(function(){ conso ...

  3. AngularJS $watch 监听

    监听$watch 监听数据变化,有三个参数 $scope.$watch(“监听的属性”,function(new,old){},true); 写true的时候可以监听一个对象里的多个数据变化,不写tr ...

  4. 面试准备之一Python

    基本数据类型 函数 模块与包 面向对象 网络编程 垃圾回收机制 G 并发编程

  5. Android分享图文到朋友圈代码。

    分享到微信朋友圈代码.不好用,最后选择了shareSdk. private static void shareToTimeLine(File file) { Intent intent = new I ...

  6. SQL Server ->> 内置标量函数TRY_PARSE、TRY_CAST和TRY_CONVERT的各自特点和区别

    SQL Server到了目前的2014版本有三个函数是用来转换数据格式的.虽说之前版本中已经有CAST和CONVERT这两个函数来干这个事情.问题是,一旦往目标数据类型转换失败就会造成报错. TRY_ ...

  7. 24点-code1

    #include <iostream> #include <string> #include <cstdlib> #include <cmath> us ...

  8. scrollview的总结

    今天主要是学习了cocos2dx的scrollview的内容,把简单的菜单滑动表现做出来了.像很多游戏的下方有一槽功能按钮,角色.背包.技能.帮助等,当宽度不足以全部显示出来的时候,隐藏一部分,以滑动 ...

  9. dll的制作

    https://blog.csdn.net/guanchanghui/article/details/1621031

  10. 年金(annuity)

    一.定义 一系列的付款(或收款),付款时间和付款金额具有一定规律性. 二.分类 1-支付时间和支付金额是否确定?确定年金(annuity-certain)风险年金(contingent annuity ...