android内存耗用:VSS/RSS/PSS/USS

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

 不是真实当前应用进程所占用的内存。

    

内存分配的原理

从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)。

1、brk是将数据段(.data)的最高地址指针_edata往高地址推;

2、mmap是在进程的虚拟地址空间中(堆和栈中间,称为文件映射区域的地方)找一块空闲的虚拟内存

     这两种方式分配的都是虚拟内存,没有分配物理内存在第一次访问已分配的虚拟地址空间的时候,

发生缺页中断,操作系统负责分配物理内存,然后建立虚拟内存和物理内存之间的映射关系。

在标准C库中,提供了malloc/free函数分配释放内存,这两个函数底层是由brk,mmap,munmap这些系统调用实现的。

情况一、malloc小于128k的内存,使用brk分配内存,将_edata往高地址推(只分配虚拟空间,不对应物理内存(因此没有初始化),

第一次读/写数据时,引起内核缺页中断,内核才分配对应的物理内存,然后虚拟地址空间建立映射关系)

情况二、malloc大于128k的内存,使用mmap分配内存,在堆和栈之间找一块空闲内存分配(对应独立内存,而且初始化为0)

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

这个包含共享库所占用的物理内存,即使这个共享库被多个进程使用

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

按比例包含共享库所占用的内存,比如有9k的共享库被3个进程使用,那个当前进程所占

用的大小被计算为9/3k,也就是3k

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

当前进程,当前所有在用的物理内存

top  | grep app名称

ps  |  grep app名称

procrank | grep app名称

一般的android没有此命令,需要去下载一个,或者下载源码,编译安装。

dumpsys meminfo app名称

前两个命令只能查到VSS RSS内存占用信息

而后面两个命令可以查出  PSS USS内存占用.

dumpsys meminfo 可以查出native和dalvik分别占用多少内存

dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。

dumpsys [Option]

meminfo 显示内存信息

cpuinfo 显示CPU信息

account 显示accounts信息

activity 显示所有的activities的信息

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

wifi 显示wifi信息

时间: 2024-11-08 17:51:11

android内存耗用:VSS/RSS/PSS/USS的相关文章

Android内存之VSS/RSS/PSS/USS

Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存) 一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS Overview The

内存VSS/RSS/PSS/USS名词解释

VSS(virtual set size)虚拟耗用内存(包含共享库占用的内存) RSS(Resident set size)实际使用物理内存(包含共享库占用的内存) RSS是进程实际驻存在物理内存的部分的大小.因为一个进程执行不需要把整个进程都全部驻存到物理内存.RSS是最常用的内存指标,表示进程占用的物理内存大小.但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中每个进程都包含了各进程间共享的内存,因此存在重叠部分. VSS是一个进程的总的大小.只有当进程执行且整个进

Linux内存VSS,RSS,PSS,USS解析

转载:http://myeyeofjava.iteye.com/blog/1837860 adb shell procrank | grep com.package > appmem说明:五个参数分别为PID Vss Rss Pss Uss 一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用

linux--VSS/RSS/PSS/USS

|--内存耗用:VSS/RSS/PSS/USS VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存) 一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >=

Android内存等信息

1. Linux中proc目录下文件详解 http://wenku.baidu.com/view/2ce89f00a6c30c2259019ef1.html 2. Android系统/proc目录详解 3. android proc 进程信息解析 http://wenku.baidu.com/view/6530ad58312b3169a451a4eb.html?re=view 4. How to get memory usage at run time in c++? 5. 使用getrusag

Android内存和Cpu性能测试

Android内存限制java虚拟机有内存使用上限的限制 adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop 单个应用程序最大内存限制,超过这个值会产生OOMdalvik.vm.heapgrowthlimit 应用启动后分配的初始内存dalvik.vm.heapstartsize 单个java虚拟机最大的内存限制,超过这个值会产生OOMdalvik.vm.heapsize 小米2S的一些内存限制 #查看单个

android内存优化大全_上

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). 内存简介: RAM(random acc

ANDROID内存优化以及原理(大汇总——上)

写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). 内存简介: RAM(random access memory)随机存取存储器.说白了就是内存. 一般Java在内存分配时会涉及到以下区域: 寄存器(R

ANDROID内存优化——大汇总(转)

原文作者博客:转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! ANDROID内存优化(大汇总——上) 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参