有道云笔记 Android内存监控

http://note.youdao.com/noteshare?id=6733e5300c8a4d06fa3c41a4f03f5c7b

内存总量:/proc/meminfo

adb shelldumpsys meminfoYOUR-PACKAGE-NAME

VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放!

Item全称含义等价

USSUnique Set Size物理内存进程独占的内存

PSSProportional Set Size物理内存PSS= USS+ 按比例包含共享库

RSSResident Set Size物理内存RSS= USS+ 包含共享库

VSSVirtual Set Size虚拟内存VSS= RSS+ 未分配实际物理内存

https://testerhome.com/topics/2572

内存的采集:

Android的内存的采集这边介绍三种方式:

1,通过Dumpsys 来取值

adb shell dumpsys meminfo ( pid)

adb shell  dumpsys  meminfo  pakagename or Pid

有如下两种显示方式:

正确的观点:

大家都知道,过多地创建bitmap会导致OOM异常,且native heapsize不受dalvik限制,所以可以得出结论:

Bitmap只能是分配在dalvik heap上的,因为只有这样才能解释bitmap容易导致OOM。

在Android2.3和以前的版本,bitmap对象的像素数据都是分配在native heap中的,所以我们在调试过程中这部分内存是在java heap中看不到的,不过在android 3.0之后,bitmap对象就直接分配在java heap上了,这样便于调试和管理。因此在3.0之后我们可以复用bitmap的内存,而不必回收它,不过新的bitmap对象要大小和原来的一样,到了android 4.4之后,就只要高宽不超过原来的就行了。Bitmap是分配在dalvik heap上的,只有这样才能解释bitmap容易导致OOM。

最大内存限制只是限Dalvik heap 的大小

#查看单个应用程序最大内存限制 对于 OOM 的监测很重要!!adb shell getprop|grepheapgrowthlimit

而meminfo 里面的dalvik heap size 的最大值若果超出了128M 那就很可能会发生OOM

2.使用ActivityManager

1. ActivityManager.MemoryInfo :

availMem:表示系统剩余内存

lowMemory:它是boolean值,表示系统是否处于低内存运行

hreshold:它表示当系统剩余内存低于好多时就看成低内存运行

我用过以上三种最多,其实Top 也可以 还有很多方法都可以。

2.Debug.MemoryInfo

dalvikPrivateDirty 进程占用内存

3.android 每个 app 内存限制大小

activityManager.getMemoryClass();

// OOM 之前

Runtime.getRuntime().addShutdownHook();

leakcanary 原理

android.内存监控,android的内存监控相关推荐

  1. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同的 Bitmap 复用策略 | 工具类代码 )

    文章目录 一.Bitmap 复用池 二.弱引用 Bitmap 内存释放 三.从 Bitmap 复用池中获取对应可以被复用的 Bitmap 对象 1.Android 2.3.3(API 级别 10)及以 ...

  2. android cne服务,Android内存优化-了解内存篇

    查看系统内存 文件 shell@aries:/ $ cat /proc/meminfo MemTotal: 1970216 kB MemFree: 83756 kB Buffers: 156020 k ...

  3. android oom工具,Android OOM-Heap,MAT工具检测内存泄露

    概述 在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在 ...

  4. android监控方法耗时开源库,【开源完整项目】 AndroidGodEye 监控Android数据指标

    AndroidGodEye Android开发者在性能检测方面的工具一直比较匮乏,仅有的一些工具,比如Android Device Monitor,使用起来也有些繁琐,使用起来对开发者有一定的要求.而 ...

  5. android内存测试方法,Android内存测试方法.doc

    Android内存测试方法 标准: 1.Android手持设备最大进程内存阀值的50% 2.不允许出现内存泄漏 3.OOM要有异常处理机制 常用工具: 1. DDMS 2. MAT 3. Magnif ...

  6. Android App性能优化之内存优化

    为什么要进行内存优化? 1.App运行内存限制,OOM导致App崩溃 2.App性能:流畅性.响应速度和用户体验 Android的内存管理方式 Android系统内存分配与回收方式 ●   一个App ...

  7. Android 解决OutOfMemory,从避免内存溢出开始

    前言:一个刚上班和三年工作经验的安卓程序猿,做同一个项目.如果只从表面上看,并没有什么区别.但从项目的性能.稳定性.扩展性等方面来观察的话,差别不要太大.言归正传,今天我们来说一下安卓开发中很常见的问 ...

  8. Android 性能优化之内存泄漏检测以及内存优化(上)

    在 Java 中,内存的分配是由程序完成的,而内存的释放则是由 Garbage Collecation(GC) 完成的,Java/Android 程序员不用像 C/C++ 程序员一样手动调用相关函数来 ...

  9. 深入剖析:如何优化Android应用的性能和内存管理

    深入剖析:如何优化Android应用的性能和内存管理 性能和内存管理的重要性 在今天的移动应用开发中,用户对于应用的性能和体验要求越来越高.一款性能卓越的Android应用能够提供流畅的操作体验.快速 ...

最新文章

  1. centos pureftpd mysql_使用PureFTPd和MySQL的虚拟主机(包括配额和带宽管理)在CentOS 6.2上...
  2. 三天学会Selenium,阿里p7精心整理自动化测试Selenium大礼包
  3. 直播 | 脑血管斑块磁共振成像:技术研发、临床转化和数据挑战
  4. 解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?
  5. docker的学习笔记(一)-一些基本的命令的学习
  6. Centos7.2搭建Openstack的Swift组件,查看状态:No such file or directory
  7. thinkcmfx漏洞太大_ThinkCMF5 代码执行漏洞及后续有关思考
  8. 如何使用MiniProfiler(附最新版MiniProfiler使用心得)
  9. concat php,php基于concat实现无限分类
  10. 真正的工业互联网!传统企业的数据建设之路,这3个场景不得不看
  11. python下载bt文件_python获取bt种子的详细信息
  12. 异常:org.springframework.http.converter.HttpMessageNotReadableException
  13. Input and Output-HackerRank C++
  14. fisher精确检验(fisher’s exat test)和超几何分布
  15. java 繁体转简体_如何用java将繁体字转为简体字
  16. can't create new tempfile: mysql_MySQL数据表“使用中”修复后依然无效提示Can't create new tempfile的解决方法...
  17. Zynga公布2020年第四季度及全年财务业绩
  18. ChatGPT使用案例之图像生成
  19. SAP的SYSTEM的函数列表和代码示例
  20. 《惢客创业日记》2021.01.27-31(周三)顾耀东傻吗?

热门文章

  1. 2019年9月 黑马头条项目14天
  2. win10看视频全屏底边任务栏还在
  3. 数据库系统概论 第七章设计数据库
  4. 塔科夫为什么远程服务器返回错误,逃离塔科夫登陆错误解决教程
  5. 关于网络硬件配置出现问题,无法上网问题的解决
  6. 关于Yolov5在测试时,图像大小被调整的问题
  7. 顶风作案:谈一谈债务危机
  8. jenkins恢复assign roles
  9. 在探索中享受童年般的乐趣 |Mixlab的故事
  10. Python自动化开发【1】:Python简介和入门