1.什么是内存泄漏?

    适用于该系统的内存使用内存泄漏,未回复(释放),该内存可以没有事业,也不能被其他人使用使用自己。

2.出有什么差别?

   内存泄漏是分配出去的内存无法回收。
   内存溢出是程序使用的内存超出了系统能给予的。

3.怎样从測试数据中得出内存泄漏?

   首先,我们须要使用性能測试工具去监控性能数据,android可使用GT.apk(下载地址:http://gt.tencent.com/)监控内存数据。

然后,对測试对象连续反复做全然同样的操作多次。然后。将測试结果(内存)制作成折线图。假设几次全然同样的操作中,内存持续增长。那么能够判定内存泄漏。

4.导致内存泄漏的原因?

   android内存泄漏的终极原因就是多线程程序重复申请释放内存,可是释放的和申请的不正确应。导致吃内存。
    详见宋宝华的博客http://blog.csdn.net/21cnbao/article/details/7706671

下面为博客原文:

   
内存泄露分为两种境地,一个是人死了,钱还没花完,你malloc的内存还没释放进程就死了,我们说,这个问题在Linux不存在,进程是个资源封装的单位。进程挂的时候,资源会被内核释放掉的,死的时候还唯独个僵尸而已。第二个境地是,人活着,钱没了。这个问题才是Linux真正操心的。一个多线程的程序。执行过程中重复申请和释放内存,可是释放的与申请的不正确应,就慢慢地吃内存,这个进程的内存消耗曲线振荡上升,直到耗尽内存。所以,在Linux世界里,我们不用操心人死了,钱还没花完的问题
。党会帮我们处理的。我们要操心的是。人活着,钱没了的问题。

   所以,能早结束的进程早点结束。多线程中该释放的内存尽早释放。

   不了解进程和线程的童鞋能够參考此文章。很简单明了 : http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

5.怎样避免内存泄漏?

   1.长期保持了context对象的引用。可參考官方博客:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
      引用译文:在Android应用程序中,非常多操作都用到了Context对象。可是大多数都是用来载入和訪问资源的。这就是为什么全部的显示控件都须要一个Context对象作为构造方法的參数。在Android应用程序中通常能够使用两种Context对象:Activity和Application。当类或方法须要Context对象的时候常见的作法是使用第一个作为Context參数。

但这就意味着View对象对整个activity保持引用。因此也就保持对activity内的全部东西的引用,也就是整个View结构和它全部的资源都无法被及时的回收,并且对activity的长期引用是比較隐蔽的。

   2.其它情况可參考这个博文。写的挺具体,我还没来得及看,看完之后再简单分析一下。
        Android之内存泄漏调试学习与总结http://mzh3344258.blog.51cto.com/1823534/895093


版权声明:本文博主原创文章,博客,未经同意不得转载。

android性能测试内存泄漏的更多相关文章

  1. 利用Android Studio、MAT对Android进行内存泄漏检测

    利用Android Studio.MAT对Android进行内存泄漏检测 Android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的c ...

  2. Android防止内存泄漏以及MAT的使用

    Android发生内存泄漏最普遍的一种情况就是长期保持对Context,特别是Activity的引用,使得Activity无法被销毁.这也就意味着Activity中所有的成员变量也没办法销毁.本文仅介 ...

  3. android 常见内存泄漏原因及解决办法

    android常见内存泄漏主要有以下几类: 一.Handler 引起的内存泄漏. 在Android开发中,我们经常会使用Handler来控制主线程UI程序的界面变化,使用非常简单方便,但是稍不注意,很 ...

  4. [原理] Android Native内存泄漏检测原理解析

    转载请注明出处:https://www.cnblogs.com/zzcperf/articles/11615655.html 上一篇文章列举了不同版本Android OS内存泄漏的检测操作(传送门), ...

  5. Android Native 内存泄漏系统化解决方案

    导读:C++内存泄漏问题的分析.定位一直是Android平台上困扰开发人员的难题.因为地图渲染.导航等核心功能对性能要求很高,高德地图APP中存在大量的C++代码.解决这个问题对于产品质量尤为重要和关 ...

  6. Android应用内存泄漏的定位、分析与解决策略

    什么是内存泄漏 对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法.下面这张图就展示了 Android 内存的回收管理策略( ...

  7. [轉]Android的内存泄漏和调试

    一. Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的 ...

  8. 【转】Android之内存泄漏调试学习与总结

    大家有或经常碰到OOM的问题,对吧?很多这样的问题只要一出现相信大家的想法跟小马的一样,就是自己的应用:优化.优化.再优化!而且如果出现类似于OOM这样级别的问题,根本就不好处理,LogCat日志中显 ...

  9. Android之内存泄漏

    开篇之前,我们要先理解:什么是内存泄漏.百度百科:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等 ...

随机推荐

  1. 关于jdbc注冊驱动的那点事

    看到非常多人写jdbc连接工具类的时候,都会写到Class.forName()去显示载入类,一写错点点就会抛出ClassNotFoundException,关于显示载入类,究竟会不会产生作用呢? 參考 ...

  2. hdu 5071 Chat(模拟)

    题目链接:hdu 5071 Chat 题目大意:模拟题. .. 注意最后说bye的时候仅仅要和讲过话的妹子说再见. 解题思路:用一个map记录每一个等级的妹子讲过多少话以及是否有这个等级的妹子.数组A ...

  3. cf-#189-div 2

    A题: 从前往后暴搜就OK: B题: 每次询问的时候都bfs一次 C题: 异或运算,从后往前运算. -------------分割线--------------------- D题:对于第K个人来说, ...

  4. Android -> 怎样避免Handler引起内存泄露

    很多其它内容,可訪问个人博客www.liangfeizc.com 错误代码 假设在Activiy中通过内部类(Runnable)的方式定义了一个变量runnable, final Runnable r ...

  5. SQL SERVER中的流程控制语句

    流程控制语句 是指用来控制程序运行和流程分至点额命令.一般指的是逻辑计算部分的控制. 1.Begin End语句 封装了多个T-SQL语句组合,将他们组成一个单元来处理. 一般在条件查询或者循环等控制 ...

  6. C#反射机制详解(转)

    两个现实中的例子:1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时 ...

  7. (转)JAVA 调用Web Service的三种方法

    1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. ...

  8. .NET开发必看资料53个+经典源码77个

    目录0豆下载:http://down.51cto.com/data/426019 附件预览: 基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.ne ...

  9. WPF换肤之七:异步

    原文:WPF换肤之七:异步 在WinForm时代,相信大家都遇到过这种情形,如果在程序设计过程中遇到了耗时的操作,不使用异步会导致程序假死.当然,在WPF中,这种情况也是存在的,所以我们就需要寻找一种 ...

  10. 黑马day07 注册案例(二)

    1依据index.jsp我们首先制定了注册的功能,当点击注册button什么时候.超链接到注册页面.下面是一个注册jsp页 <%@ page language="java" ...