您的位置:首页 > 运维架构 > Shell

adb shell top 命令中几个内存信息的解释 【RSS,PSS,USS,VSS】 native,dalvik内存

2017-02-15 11:51 801 查看
adb shell top  命令中

从以上打印可以看出,一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS 

 VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间 

RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。 

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

USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。 
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加 

Android程序内存被分为2部分:native和dalvik,dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,而bitmap是直接在native上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。Android程序内存一般限制在16M,当然也有24M的。 

 从上信息对于分析内存泄露,内存溢出都有极大的作用,从以上信息可以看到该应用程序占用的native和dalvik,当TOTAL 16407 11792 12860 22275 18459 2003超过内存最大限制时会出现OOM错误。 

dumpsys能做的事还有很多 

dumpsys [options]

               meminfo 显示内存信息

               cpuinfo 显示CPU信息

               account 显示accounts信息

               activity 显示所有的activities的信息

               window 显示键盘,窗口和它们的关系

               wifi 显示wifi信息

参考文档:http://www.cnblogs.com/qianxudetianxia/archive/2012/05/14/2497073.html 
http://www.v2ex.com/t/174185
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息