Android 查看内存命令总结
文章目录
- 内存相关概念解析
- dumpsys meminfo
- procrank
- cat /proc/meminfo
- free
- vmstat
内存相关概念解析
一个进程占用了多少内存,主要有下述四种说法:
VSS(Virtual Set Size),虚拟内存。RSS + 未分配实际物理内存
单个进程可访问的全部虚拟内存地址空间,其大小包括未实际申请的物理内存。
RSS(Resident Set Size),物理内存。USS + 包含共享库
单个进程实际占用的内存大小,RSS不太准确的地方在于它包括该进程所使用共享库全部内存大小。对于一个共享库,可能被多个进程使用,实际该共享库只会被装入内存一次。
PSS(Proportional Set Size),物理内存。USS + 按比例包含共享库
PSS相对于RSS计算共享库内存大小是按比例的。N个进程共享,该库对PSS大小的贡献只有1/N。
USS(Unique Set Size),物理内存。进程独占的内存
单个进程私有的内存大小,即该进程独占的内存部分。USS表示运行一个特定进程的真实内存增量大小,如果进程终止,USS就是实际被返还给系统的内存大小。
dumpsys meminfo
查看指定进程的内存信息:dumpsys meminfo [pid]
Applications Memory Usage (in Kilobytes):
Uptime: 2455033 Realtime: 2455033Pss Private Private SwapPss Heap Heap HeapTotal Dirty Clean Dirty Size Alloc Free------ ------ ------ ------ ------ ------ ------Native Heap 212 184 28 36524 0 0 0Dalvik Heap 0 0 0 0 0 0 0Stack 4 0 4 740Other dev 9 0 0 0.so mmap 36266 16 35460 5740Other mmap 12 0 8 52Unknown 64 36 28 6708TOTAL 86331 236 35528 49764 0 0 0App SummaryPss(KB)------Java Heap: 0Native Heap: 184Code: 35476Stack: 0Graphics: 0Private Other: 104System: 50567TOTAL: 86331 TOTAL SWAP PSS: 49764
Android heap上的内存分为两块:native和dalvik。dalvik就是我们平常说的java堆,Java对象分配占据的内存;Native代码分配的内存,虚拟机和Android框架分配内存。
procrank
获取所有进程的内存使用的排行榜,排行是以Pss的大小而排序。procrank命令比dumpsys meminfo命令,能输出更详细的VSS/RSS/PSS/USS内存指标。
PID Vss Rss Pss Uss Swap PSwap USwap ZSwap cmdline2572 4757048K 280016K 156987K 147300K 8916K 145K 0K 37K com.bbk.launcher22548 4276448K 293992K 153739K 140888K 8852K 151K 8K 39K com.android.systemui1037 4887848K 272952K 138643K 128120K 17688K 9001K 8852K 2328K system_server3492 1321548K 132312K 51964K 46528K 7004K 476K 0K 123K com.vivo.globalsearch......RAM: 7801436K total, 3109936K free, 9560K buffers, 2247508K cached, 3468K shmem, 836080K slab
USS是进程独自占用的物理内存(不包含共享库占用的内存),它是一个非常非常有用的数字, 揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加。
cat /proc/meminfo
查看系统的详尽内存信息,包含内核情况
MemTotal: 7801436 kB //总内存
MemFree: 3104012 kB //空闲内存
MemAvailable: 5242416 kB
Buffers: 9560 kB //给文件的缓冲大小
Cached: 2249552 kB
SwapCached: 8640 kB
Active: 792860 kB
Inactive: 2345844 kB
Active(anon): 419236 kB
Inactive(anon): 466352 kB
Active(file): 373624 kB
Inactive(file): 1879492 kB
Unevictable: 3260 kB
Mlocked: 3260 kB
SwapTotal: 2097148 kB
SwapFree: 1808416 kB
Dirty: 64 kB //等待被写回到磁盘的大小
Writeback: 0 kB
AnonPages: 878096 kB
Mapped: 851592 kB
Shmem: 3468 kB
Slab: 836120 kB
SReclaimable: 121448 kB
SUnreclaim: 714672 kB
KernelStack: 48836 kB
PageTables: 71760 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5997864 kB
Committed_AS: 108413340 kB
VmallocTotal: 263061440 kB //虚拟内存大小
VmallocUsed: 0 kB
VmallocChunk: 0 kB
CmaTotal: 299008 kB
CmaFree: 199368 kB
RSCISF: 261120 kB
RSCIBF: 110560 kB
NR_KMALLOC: 19840 kB
NR_VMALLOC: 80372 kB
NR_DMA_NOR: 0 kB
NR_DMA_CMA: 95548 kB
NR_ION: 161148 kB
free_ion: 10092 kB
free_ion_pool: 10092 kB
free_ion_heap: 0 kB
NR_GPU: 136452 kB
free_gpu: 21896 kB
o0a1r0: 120 kB
o1a1r0: 21776 kB
o4a0r256: 0 kB
o8a0r32: 0 kB
zram_size: 74708 kB
pcppages: 3788 kB
ALL_MEM: 7778432 kB
free
查看可用内存,缺省单位KB。该命令比较简单、轻量,专注于查看剩余内存情况。数据来源于/proc/meminfo。
total used free shared buffers
Mem: 7988670464 4812099584 3176570880 3551232 9789440
-/+ buffers/cache: 4802310144 3186360320
Swap: 2147479552 295645184 1851834368
vmstat
不仅可以查看内存情况,还可以查看进程运行队列、系统切换、CPU时间占比等情况,另外该指令还是周期性地动态输出。
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----r b swpd free buff cache si so bi bo in cs us sy id wa3 0 1243544 400116 12276 5343880 9 19 41 53 1 465 12 12 76 0
参数列总共15个参数,分为4大类:
- procs(进程)
- r: Running队列中进程数量
- b: IO wait的进程数量
- memory(内存)
- swpd: 虚拟内存使用大小
- free: 空闲内存大小
- buff:用作buffer的内存大小
- cache: 用作cache的内存大小
- IO:
- bi: Blocks received from a block device (blocks/s).
- bo: Blocks sent to a block device (blocks/s).
- system(系统)
- in: 每秒的中断次数(包括时钟中断)
- cs: 每秒上下文切换的次数
- cpu(处理器)
- us: user time
- ni: nice time
- sy: system time
- id: idle time
- wa: iowait time
- ir: interrupt time
参考:
http://gityuan.com/2016/01/02/memory-analysis-command/
https://www.cnblogs.com/arnoldlu/p/9375377.html
Android 查看内存命令总结相关推荐
- 如何用命令行查看服务器型号,服务器查看内存命令行
服务器查看内存命令行 内容精选 换一换 为了更有效地利用内存空间,提升Carbon查询效率,可以启用索引缓存服务器(IndexServer).IndexServer将索引缓存从Carbon查询的应用中 ...
- linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)
linux free命令参数及用法详解(linux查看内存命令) 2019年05月31日 | 萬仟网科技 | 我要评论 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段 ...
- android+查看内存容量apk,如何检查 Android 应用的内存使用情况
注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删. 目录 解析日志信息logcat 使用DDMS查看堆的更新Heap 使用DDMS跟踪内存分配Allocation T ...
- GDB下查看内存命令(x命令)
可以使用examine命令(简写是x)来查看内存地址中的值.x命令的语法如下所示: x/<n/f/u> <addr> n.f.u是可选的参数. n是一个正整数,表示需要显示的内 ...
- android查看内存使用情况
1.cat /proc/meminfo MemTotal: 所有可用RAM大小 (即物理内存减去一些预留位和内核的二进制代码大小)MemFree: LowFree与HighFree的总和Buffers ...
- android 如何 查看内存使用详情,android 查看内存使用情况
对android 内存分析比较好的Blog: 主要介绍 1.进程的地址空间. 2.进程内存空间和RAM之间的关系. 3.Android中的进程. 4.Android中进程的堆内存. 5.Android ...
- Android 查看内存使用工具 (procstats)
对于应用开发来说,简单的看应用内存有没有问题,就可以使用这个工具procstats. 跑上几个小时monkey,然后用工具dump一下就对内存的使用就了然于胸 文章翻译自 http://source. ...
- linux查看内存命令(查看进程虚拟内存)free命令、vmstat命令、pmap命令(free指令、vmstat指令、pmap指令)
文章目录 查看系统内存状态 free命令 vmstat命令 pmap pmap命令 查看系统内存状态 查看系统内存情况的方式有很多,free. vmstat等命令都可输出当前系统的内存状态,需要注意的 ...
- ubuntu 查看内存命令
原文链接:https://blog.csdn.net/jzp12/article/details/7560450 Linux中使用free可以查看系统内存使用状态, 默认单位为KB为单位,在此我以MB ...
最新文章
- java opengl es_Java-Android-使用openGL ES绘制3D然后绘制2D
- k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
- 【python】nuitka封装python
- wkhtmltopdf:wkhtmltopdf(将html转换成pdf的利器)简介、安装、使用方法详细攻略
- b 计数器位选信号 verilog_Verilog HDL菜鸟学习笔记———三、Verilog常用语法之一...
- MVC View 中 html 属性名与关键字冲突问题的分析与解决
- linux下Hbase的常用shell命令
- 项目管理学习总结(17)——关于前后端分离的分析
- 项目管理学习总结(14)——优秀技术Leader应该具备什么哪些方面的能力
- matlab如何记录时间,求助:在MATLAB里如何输入时间序列中的时间
- java string debug_java 中 string 对象
- 施乐s2110进入维修模式_施乐进入维修模式步骤
- 自动采集小说程序源码
- 数据库学习——SQL之SELECT查询语句
- 正确姿势使用arm-linux-androideabi-addr2line
- 起早贪黑几个月,我写完了人生第一本书!
- SQL - 数据查询语句之字符串拆分
- [WIN32]MessageBox用法
- c语言编程新思路知道答案,C语言编程新思路知道答案公众号
- Android 8内测版本,安卓qq v8.0.8内测版