美文网首页
android的内存监控

android的内存监控

作者: ab64fd4eaee3 | 来源:发表于2017-03-20 01:29 被阅读1028次

有道云笔记 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 内存监控

    Linux内存指标概念 VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS-...

  • android的内存监控

    有道云笔记Android内存监控 http://note.youdao.com/noteshare?id=6733...

  • Android调优之监控应用内存泄漏

    Android上一般使用LeakCanary监控Activity的内存泄漏 添加LeakCanary依赖 这里接入...

  • Android 内存监控工具

    背景 看了微信的内存优化杂谈 看到微信做了一个内存监控的工具,定期去获取当前内存状况作相应的处理. 实现 代码还是...

  • zabbix监控GPU所需监控项

    监控风扇 监控温度 监控内存

  • 监控内存使用率

    监控内存使用率监控目的监控方法监控实现一、监控目的通过监控内存使用率判定机器内存资源消耗情况,及时处理并优化资源配...

  • 字节跳动团队:Android Camera 内存问题剖析

    背景 Raphael 是西瓜视频 Android 团队开发的一款 native 内存监控工具,在字节跳动内部产品(...

  • Android内存分析与监控

    1.查看GC日志 2,使用Profiler分析内存 3,使用LeakCanary监控内存泄漏 LeakCanary...

  • Android 内存之监控篇

    一、前言 内存问题主要会造成如下几个影响。第一、会发生OOM等异常,因为每个对象都会占用一定的内存,内存过多会影响...

  • LeakCanary 原理分析

    LeakCanary 是Android开发中常用的内存泄漏检测工具。我们以Activity的监控为例,分析下是如何...

网友评论

      本文标题:android的内存监控

      本文链接:https://www.haomeiwen.com/subject/asqbnttx.html