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

2023-11-18

转载: http://blog.csdn.net/adaptiver/article/details/7084364

 

Terms

  • VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
  • RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  • PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
  • USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

Overview

The aim of this post is to provide information that will assist in interpreting memory reports from various tools so the true memory usage for Linux processes and the system can be determined.

Android has a tool called procrank (/system/xbin/procrank), which lists out the memory usage of Linux processes in order from highest to lowest usage. The sizes reported per process are VSS, RSS, PSS, and USS.

For the sake of simplicity in this description, memory will be expressed in terms of pages, rather than bytes. Linux systems like ours manage memory in 4096 byte pages at the lowest level.

VSS (reported as VSZ from ps) is the total accessible address space of a process.This size also includes memory that may not be resident in RAM like mallocs that have been allocated but not written to. VSS is of very little use for determing real memory usage of a process.

RSS is the total memory actually held in RAM for a process.RSS can be misleading, because it reports the total all of the shared libraries that the process uses, even though a shared library is only loaded into memory once regardless of how many processes use it. RSS is not an accurate representation of the memory usage for a single process.

PSS differs from RSS in that it reports the proportional size of its shared libraries, i.e. if three processes all use a shared library that has 30 pages, that library will only contribute 10 pages to the PSS that is reported for each of the three processes. PSS is a very useful number because when the PSS for all processes in the system are summed together, that is a good representation for the total memory usage in the system. When a process is killed, the shared libraries that contributed to its PSS will be proportionally distributed to the PSS totals for the remaining processes still using that library. In this way PSS can be slightly misleading, because when a process is killed, PSS does not accurately represent the memory returned to the overall system.

USS is the total private memory for a process, i.e. that memory that is completely unique to that process.USS is an extremely useful number because it indicates the true incremental cost of running a particular process. When a process is killed, the USS is the total memory that is actually returned to the system. USS is the best number to watch when initially suspicious of memory leaksin a process.

For systems that have Python available, there is also a nice tool calledsmem that will report memory statistics including all of these categories.

# procrank
procrank
PID      Vss      Rss      Pss      Uss cmdline
481   31536K   30936K   14337K    9956K system_server
475   26128K   26128K   10046K    5992K zygote
526   25108K   25108K    9225K    5384K android.process.acore
523   22388K   22388K    7166K    3432K com.android.phone
574   21632K   21632K    6109K    2468K com.android.settings
521   20816K   20816K    6050K    2776K jp.co.omronsoft.openwnn
474    3304K    3304K    1097K     624K /system/bin/mediaserver
37     304K     304K     289K     288K /sbin/adbd
29     720K     720K     261K     212K /system/bin/rild
601     412K     412K     225K     216K procrank
   1     204K     204K     185K     184K /init
35     388K     388K     182K     172K /system/bin/qemud
284     384K     384K     160K     148K top
27     376K     376K     148K     136K /system/bin/vold
261     332K     332K     123K     112K logcat
33     396K     396K     105K      80K /system/bin/keystore
32     316K     316K     100K      88K /system/bin/installd
269     328K     328K      95K      72K /system/bin/sh
26     280K     280K      93K      84K /system/bin/servicemanager
45     304K     304K      91K      80K /system/bin/qemu-props
34     324K     324K      91K      68K /system/bin/sh
260     324K     324K      91K      68K /system/bin/sh
600     324K     324K      91K      68K /system/bin/sh
25     308K     308K      88K      68K /system/bin/sh
28     232K     232K      67K      60K /system/bin/debuggerd
#

 

 

 

top  | grep app名称

ps  |  grep app名称

procrank | grep app名称

dumpsys meminfo app名称

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

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

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

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

dumpsys [Option]

               meminfo 显示内存信息

               cpuinfo 显示CPU信息

               account 显示accounts信息

               activity 显示所有的activities的信息

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

               wifi 显示wifi信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • virtualbox虚拟机安装Ubuntu异常处理:FATAL: NO bootable medium found! System halted

    遇到的问题 当virtualbox虚拟机安装linux系统 异常处理 FATAL NO bootable medium found System halted 问题的原因 没有找到iso文件来安装系统 解决的方案 下载镜像文件 centos
  • InnoDB Rollback Segment & Undo Page Deallocation实现源码分析

    InnoDB Rollback Segment Undo Page Deallocation实现源码分析 4月 23rd 2012 发表评论 Trackback 1 InnoDB Rollback Segment 1 1 1 Rollbac
  • 计算机视觉人脸检测与识别

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 TOC 文章目录 使用opencv进行人脸检测 文件目录 二 init文件内容 shishi文件内容 coding utf 8 加载训练数据集文件 准备识别的图片
  • 基于微信小程序的短视频管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端框架 VUE 数据库 MySQL5 7 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Maven项目 是 目录 一 项目简介 二
  • NEZUKO: 1——202201152003

    NEZUKO 1 202201152003 About Release Back to the Top Name nezuko 1 Date release 21 Aug 2019 Author yunaranyancat Series n
  • 五一假期出行的数据爬取和分析

    出来旅行 用手机编辑的 代码格式有可能出现问题 等回去用电脑进行修改 你们的萧萧吖 随着旅游业的迅速发展 越来越多的人选择在假期去旅游 五一假期是国内最热门的旅游季节之一 吸引了大量的游客前往各个景点 本篇博客将介绍如何使用 Python
  • XXE漏洞原理

    XXE漏洞是XML外部实体注入漏洞 那什么是外部实体呢 XML DTD 1 文档类型定义 DTD 可定义合法的XML文档构建模块 它使用一系列合法的元素来定义文档的结构 2 DTD 可被成行地声明于 XML 文档中 也可作为一个外部引用 P
  • 机器学习基础 第三章 分类算法

    1 线性分类器 感知器 1 1 感知器 有如图1 1所示的两类数据希望找到 如果想把他们分开 最简单的方法就是用图中的绿线将它们分开 显然绿线的方程为 t 0 1x 1y 1 1 1 t omega 0 omega 1 x omega 1
  • Linux的缓存内存(cache memory)

    PS 为什么Linux系统没运行多少程序 显示的可用内存这么少 其实Linux与Win的内存管理不同 会尽量缓存内存以提高读写性能 通常叫做Cache Memory 为什么Linux系统没运行多少程序 显示的可用内存这么少 其实Linux与
  • PyTorch模型训练集正常收敛,但验证集准确率稳定在10%并保持不变

    问题描述 训练过程中遇到的一个Bug 可能是跟Torch本身有关 如下图和题目所示 经过多轮训练 训练准确率开始收敛 但是验证准确率保持在10 左右不变 排查手册 一般来说这表示模型本身可能存在问题 下面列出一个排查手册 检查是否是数据问题
  • C#中的DataGridView中添加按钮并操作数据

    目录 背景 一 在DataGridView中显示需要的按钮 二 给DataGridView添加事件 可以通过按钮来操作数据库 三 在按钮上鼠标箭头变成小手样式 四 总结 背景 最近在项目中有需求需要在DataGridView中添加 删除 修
  • 十进制数转8421BCD码

    十进制数转8421BCD码就是把十进制数字每一位都用4个二进制位所组成的数字代替 十进制数 8421码 余3码 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 01
  • 拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 作者 听不来喊麦的C君 PS 如果你处于想学Python或者正在学习Python Python的教程不少了吧 但是是
  • phpstudy安装及简单使用

    前言 我们都知道如果要搭建网站 就需要借助Apache或者Nginx的帮助 当然也少不了数据库的使用 我们自行下载Apache和MySQL等数据库 需要我们进行配置才能使用 这对于一些小白非常的不方便 而且出现一些错误不会解决可能会耽搁很长
  • MySQL执行顺序

    mysql执行顺序如下 1 from 阶段 2 where 阶段 3 group by 阶段 4 having 阶段 5 select 阶段 6 order by 阶段 7 limit 阶段 问题 为什么别名不可以使用在where中 但可以
  • 队列以及Java实现

    了解队列 在我们的现实生活中会经常看见队列的出现 如 排队买奶茶 叫号服务和餐厅的排号 我们去餐厅准备吃饭时 由于人多只能排队等待就餐或换一家人少的餐厅 餐厅为了让服务更加的好 就会使用排队系统 排队系统完全模拟了人群排队全过程 通过取票进
  • el-cascader 懒加载回显问题解决

    解决思路 在页面初始化技术后根据组件的ref 直接给组件的inputValue和inputTerxt赋label的值 前提是你之前已经保存过这个值 ref的部分属性 代码
  • 靠Python做副业一年买了房:未来五年的风口行业 ,90%的人都不知道

    程序开发领域有这样一句话 人生苦短 我用Python 这本是开发者大佬Bruce Eckel的金句 Life is short you need Python 有趣的是 很多人并非专职程序员 但却把这句话奉为神谕 所以Python究竟有什么
  • Python中MNE库的脑电地形图绘制

    脑电地形图在进行和 源 相关的分析时很有用 可以直观的看出各个电极的激活情况以及其随时间的变化 在标准的脑电数据中都是有电极的坐标位置的 会用EEGLab的可能对这块比较熟悉了 实际MNE库中也有相关的定义和实现 可以导入外部的电极数据 或
  • top 内存耗用:VSS/RSS/PSS/USS

    转载 http blog csdn net adaptiver article details 7084364 Terms VSS Virtual Set Size 虚拟耗用内存 包含共享库占用的内存 RSS Resident Set Si