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. Spring中继承配置的注入方法

    (1)两个java类.一个父类一个字类 package com.lc.inherit; /* * 这里是父类 */ public class Student { protected String na ...

  2. Object.Instantiate 实例

    static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object ...

  3. ssl https双向验证的配置与证书库的生成

    1.SSL认证 不须要特别配置,相关证书库生成看https认证中的相关部分 2.HTTPS认证 一.基本概念 1.单向认证,就是传输的数据加密过了,可是不会校验client的来源  2.双向认证,假设 ...

  4. 使用POI生成Excel报表

    先把报表模板截图贴上来 下面是POI编写的报表生成类ExcelReport.java package com.jadyer.report; import java.io.FileNotFoundExc ...

  5. Enum实现单例模式

    package com.wjy.effective; public enum Singleton { INSTANCE; private int numa; private int numb; pub ...

  6. RVDS 3.1 下载地址及破解方法

    RealView Development Suite 3.1  RVDS 3.1下载地址:https://silver.arm.com/download/Development_Tools/RVDS/ ...

  7. JavaScript中的对象(一)

    Email:longsu2010 at yeah dot net 最近我和朋友谈起JavaScript中对象的问题.朋友以写JavaScript为生,而且生活的很好,然而我发现他并不真正懂这们语言的某 ...

  8. adt-bundle更新eclipse,以及搭建android环境

    曾经开发一直去android官网下载adt-bundle的.里面已经包括了eclipse和android SDK,搭建android环境特别方便,仅仅须要3步:1.下载并安装jdk(也就是jar se ...

  9. Java http数据MD5、AES、DES加密

    一,数据加密 1.提供了,md5,Hex,Sha等不可逆算法加密 2.AES加密,此加密方式瘦平台影响较重,所以只适合同类平台加密解密 3.DES自定义加密,跨平台,兼容性好 1.org.apache ...

  10. C# 通信学习笔记

    C# 通信学习笔记 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不 ...