zoukankan      html  css  js  c++  java
  • 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信息

    android 自带的DDMS进行APP内存使用分析

    Heap analzy

    allocation analzy

    Heap PROF FILE

    通过MAT分析配置文件

    MAT install site

    http://download.eclipse.org/mat/1.2/update-site/

    还可以通过trace view进行性能分析。。。

  • 相关阅读:
    MongoDB一次节点宕机引发的思考(源码剖析)【华为云分享】
    JavaScript基础修炼(14)——WebRTC在浏览器中如何获得指定格式的PCM数据【华为云分享】
    如何通过虚拟私有云保障服务安全【华为云分享】
    网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
    化鲲为鹏,我有话说:鲲鹏服务器开通流程以及注意事项【华为云分享】
    hadoop小知识札记
    抽取网页中的主要内容
    Hadoop Bloom Filter 使用
    Bloom filter 2
    Bloom Filter
  • 原文地址:https://www.cnblogs.com/lzl-sml/p/3970020.html
Copyright © 2011-2022 走看看