关闭

我的工作---IOS内存泄露

339人阅读 评论(0) 收藏 举报
分类:


一.Debug navigator中的Memory


1、从svn导入ios的app源码到xcode

2、选择:Product---Run,运行app

3、选择标红的部分:Debug navigator


4、可以显示cpu、内存的使用情况




5、如果内存使用一直变大,可能有些内存没有释放,会存在内存泄露(循环引用导致的 Abandoned memory


备注:

Leaks

先看看 Leaks,从苹果的开发者文档里可以看到,一个 app 的内存分三类:

  • Leaked memory: Memory unreferenced by your application that cannot be used again or freed (also detectable by using the Leaks instrument).

  • Abandoned memory: Memory still referenced by your application that has no useful purpose.

  • Cached memory: Memory still referenced by your application that might be used again for better performance.

其中 Leaked memory 和 Abandoned memory 都属于应该释放而没释放的内存,都是内存泄露,而 Leaks 工具只负责检测 Leaked memory,而不管 Abandoned memory。在 MRC 时代 Leaked memory 很常见,因为很容易忘了调用 release,但在 ARC 时代更常见的内存泄露是循环引用导致的 Abandoned memory,Leaks 工具查不出这类内存泄露,应用有限。



备注:

 怎么进行app内存测试

(1) 用Leaks检测内存泄露
(2) 反复进入退出一个功能页面,在Debug navigator中看内存是不是持续上升。内存持续上升说明内存漏了。




二.Instruments

启动Instruments的方法是,Product->Profile,经过漫长的编译时间后,出现Instruments界面,下图


Instruments中,可以分析内存的工具有Activity Monitor,Allocations,Leaks。

(1)Leaks

Leaks检测内存泄露的工具,很有用。Leaks运行中,看到下面这个红叉叉就表示有内存泄露了



0
0
查看评论

iOS - 内存管理十全大补丸——内存泄露检查实战总结

前段时间被分配查应用的内存泄露问题,然后搜集了一大波内存管理相关的资料,并且在整个过程中狠狠的实践了一波。下面就把这段时间内碰到的坑(从别的地方也搜刮到很多坑),以及搜集到的一些理论知识(简洁版)总结一发。  背景:一个复杂的iOS应用可能会混合着MRR和ARC两种内存管理方式,就是有一部分文件MR...
  • linyousong
  • linyousong
  • 2016-07-17 00:12
  • 4613

我的工作---IOS内存泄露

1、从svn导入ios的app源码到xcode 2、选择:Product---Run,运行app 3、选择标红的部分 4、可以显示cpu、内存的使用情况 5、如果内存使用一直变大,可能会存在内存泄露()
  • java2013liu
  • java2013liu
  • 2016-08-29 16:31
  • 339

Instruments User Guide编程指南5-Profile Your App's Memory Usage

About Memory Analysis 无论什么时候APP创建对象,将会为对象分配内存。惯例上,APP将跟踪这些对象,并且在不需要的时候释放它们以至于能够为其它对象重新分配内存。Automatic Reference Counting (ARC) 是一个非常有用的特性,将使得内存事情变得非常...
  • longshihua
  • longshihua
  • 2016-10-10 17:01
  • 751

iOS 测试项目是否存在内存泄露

iOS测试项目是否存在内存泄露
  • fuzongjian
  • fuzongjian
  • 2016-02-20 15:34
  • 1137

[iOS] AFNetworking3内存泄露

最近由于项目需求升级到AFN3,使用Instruments做内存泄漏分析时发现每个请求都有内存泄漏,调查发现原来是 AFHTTPSessionManager多次创建却不能释放掉 于是将其写入单例, 问题解决 static AFHTTPSessionManager *manager;...
  • Enjolras1024
  • Enjolras1024
  • 2016-08-09 13:57
  • 1448

MLeaksFinder:精准 iOS 内存泄露检测工具

转载的笔记-没事多学习学习哦~ 背景 平常我们都会用 Instrument 的 Leaks / Allocations 或其他一些开源库进行内存泄露的排查,但它们都存在各种问题和不便,我们逐个来看这些工具的使用和存在的问题。 Leaks 先看看 Leaks,从苹果的开发者文档里可以看到,...
  • zhangjunjian127
  • zhangjunjian127
  • 2016-04-06 17:19
  • 3127

HDU 5723 Abandoned country

Problem Description An abandoned country has n(n≤100000) villages which are numbered from 1 to n. Since abandoned for a long tim...
  • jtjy568805874
  • jtjy568805874
  • 2016-07-19 18:33
  • 731

ios学习路线—Objective-C(检查内存泄露方式(Instruments))

Time Profiler(时间探测器) 现在开始运行app,搜索一些图片,这时候你发现查找一个结果太慢了,而且搜索结果列表页面滚动起来也是让人无法忍受的, 首先,确保工具栏中的视图选择有选择的所有三个选项,如下所示: 这将确保所有的面板都打开。现在,研究下面的截图和它下面的每个部分的解释...
  • dubo413392749
  • dubo413392749
  • 2016-06-15 15:50
  • 1136

iOS ARC也会有内存泄露

转:点击打开链接 iOS提供了ARC功能,很大程度上简化了内存管理的代码。 但使用ARC并不代表了不会发生内存泄露,使用不当照样会发生内存泄露。 下面列举两种内存泄露的情况。 1,循环参照 A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都...
  • allison162004
  • allison162004
  • 2014-08-22 11:25
  • 2505

精准 iOS 内存泄露检测工具

背景 平常我们都会用 Instrument 的 Leaks / Allocations 或其他一些开源库进行内存泄露的排查,但它们都存在各种问题和不便,我们逐个来看这些工具的使用和存在的问题。 Leaks 先看看 Leaks,从苹果的开发者文档里可以看到,一个 app 的内存分三类: ...
  • java2013liu
  • java2013liu
  • 2016-08-18 17:19
  • 1065
    个人资料
    • 访问:22095次
    • 积分:452
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:34篇
    • 译文:0篇
    • 评论:0条