-
2021-01-17 13:01:06
一、procrank
VSS >= RSS >= PSS >= USS
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加
二、dumpsys meminfo(或者直接读取“/proc/meminfo”文件来获得内存信息--Linux系统)
1、cat /proc/meminfo
MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)。
MemFree:被系统留着未使用的内存。
Buffers: 用来给文件做缓冲的大小。
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).
SwapCached:swap 缓存的大小,Android很少使用swap的,经常为0。被高速缓冲存储器(cache memory)用来交换空间的大小,用来在需要的时候很快的被替换而不需要再次打开I/O端口。
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。
SwapTotal: 交换空间的总大小。
SwapFree: 未被使用交换空间的大小。
2、dumpsys meminfo 进程pid或程序包名
查询结果根据以下4类分类:
OOM(out of memory)即内存泄露。一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。
Android的一个应用程序的内存泄露对别的应用程序影响不大,因为为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,也就是说每个应用程序都是在属于自己的进程中运行的。如果程序内存溢出,Android系统只会kill掉该进程,而不会影响其他进程的使用(如果是system_process等系统进程出问题的话,则会引起系统重启)。
更多相关内容 -
ADB 命令 查看内存和CPU VSS,RSS,PSS,USS
2021-01-09 05:46:321. procrank //查看所有进程的内存占比,可以查看TOTAL 2. procrank | grep 包名 //查看特定进程内存占比 结果如下: procrank PID Vss Rss Pss Uss cmdline 2260 1462560K 24324K 21570K 20932K ... -
adb命令查看Android中内存使用情况
2021-06-30 10:35:43adb是一个非常强大的工具,使用adb查看程序内存使用情况可按如下格式在命令行里查看内存使用情况: adb shell dumpsys meminfo <package_name> 1 2 其中package_name可以换成程序的pid,pid可以通过adb ...1、使用adb dumpsys命令
adb是一个非常强大的工具,使用adb查看程序内存使用情况可按如下格式在命令行里查看内存使用情况: adb shell dumpsys meminfo <package_name>
- 1
- 2
其中package_name可以换成程序的pid,pid可以通过adb shell top -n 1或者adb shell ps来查找,下图是某个程序的内存使用情况:
重点关注如下几个字段:
(1)Native/Dalvik 的Heap信息
具体在上面的第一行和第二行,它分别给出的是JNI层和java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄露。
(2)Total 的PSS信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占用内存比较大了。2、使用adb shell procrank
手机中的sh是经过精简过的,有些手机可能没有 procrank 命令,可以使用genymotion模拟器,或是自己安装procrank命令。使用procrank时,命令行的输出入下图:
可以看到,在linux下表示内存的耗用情况有四种不同的表现形式:
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)VSS:VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。
RSS:表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。
PSS:表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。这种方式表示进程的内存使用情况较准确,但当只有一个进程使用共享库时,其情况和RSS一模一样。
USS:表示一个进程本身占用的内存空间大小,不包含其它任何成分,这是表示进程内存大小的最好方式!
可以看到:VSS>=RSS>=PSS>=USS3、使用studio内存分析工具
4、其它常用命令:
adb shell kill PIDNUMber 杀死你想杀死的后台进程,来模拟某种bug 的复现条件。
adb shell ps 查看当前终端中的进程信息那么如何在代码中判断当前的硬件系统有多少的 RAM 呢?在 Framework ProcessList.java 中有如下代码可用:
ProcessList() { MemInfoReader minfo = new MemInfoReader(); minfo.readMemInfo(); mTotalMemMb = minfo.getTotalSize()/(1024*1024); }
查看进程占用cpu的情况:adb shell top -n 1 -d 0.5 | grep proc_ id
-
使用adb命令查看手机cpu/内存等信息
2020-12-20 06:25:21使用adb命令查看手机cpu/内存等信息前提本地电脑Windows已安装ADB工具、夜神模拟器连接手机这里用的夜神模拟器连接的使用adb命令连接手机:adb connect 127.0.0.1:62001备注:62001夜神模拟器默认端口显示已连接成功...使用adb命令查看手机cpu/内存等信息
前提
本地电脑Windows已安装ADB工具、夜神模拟器
连接手机
这里用的夜神模拟器连接的
使用adb命令连接手机:adb connect 127.0.0.1:62001
备注:62001夜神模拟器默认端口
显示已连接成功了
进入Android底层(服务器)
命令:adb shell
查看CPU使用情况
输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序)
参数含义:
PID : 应用程序ID
S : 进程的状态(S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数)
#THR : 程序当前所用的线程数
VSS : 虚拟耗用内存(包含共享库占用的内存)
RSS : 实际使用物理内存(包含共享库占用的内存)
PCY : 前台(fg)和后台(bg)进程
UID : 用户身份ID
Name : 应用程序名称
查看指定程序内存使用情况
根据进程ID或包名。命令:dumpsys meminfo [包名]或[PID]
Uptime:表示启动到现在的时长,不包含休眠的时间,单位毫秒(ms)
Realtime:表示启动到现在的时长,包含休眠的时间,单位毫秒(ms)
Native Heap: 进程本身使用的内存
Dalvik Heap : 虚拟机VM使用的内存
Dalvik Other : 虚拟机VM之外的内存(比如Java的GC内存)
Stack:应用中的原生堆栈和 Java 堆栈使用的内存
Pss Total: 应用程序真实占用了物理内存的空间
Heap Alloc : 程序虚拟已使用的内存
Heap Size:程序堆的总内存
Heap Free : 空闲的内存
private dirty : 私用共享内存
dumpsys 拓展
显示CPU信息
命令:dumpsys cpuinfo
显示所有的activity信息
命令:dumpsys activity
显示指定应用程序的activity信息
命令:dumpsys activity package [包名]
显示wifi信息
命令:dumpsys wifi
显示所有的电池状态
命令:dumpsys batterystats
显示指定应用的电池状态
命令:dumpsys batterystats [package name]
以上命令均可在后加 -h 查看命令帮助
本文地址:https://blog.csdn.net/lht3347/article/details/107173687
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
-
adb命令查看设备内存
2020-03-20 17:50:53adb shellprocrank , 看ram 大概905M 也就是1G内存 VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set ...用power shell 比cmd 更好用
输入命令:adb shell procrank
或者用adb shell top
看ram 大概905M 也就是1G内存
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
VSS:VSS表示一个进程可访问的全部内存地址空间的大小。这个大小包括了进程已经申请但尚未使用的内存空间。在实际中很少用这种方式来表示进程占用内存的情况,用它来表示单个进程的内存使用情况是不准确的。
RSS:表示一个进程在RAM中实际使用的空间地址大小,包括了全部共享库占用的内存,这种表示进程占用内存的情况也是不准确的。
PSS:表示一个进程在RAM中实际使用的空间地址大小,它按比例包含了共享库占用的内存。假如有3个进程使用同一个共享库,那么每个进程的PSS就包括了1/3大小的共享库内存。这种方式表示进程的内存使用情况较准确,但当只有一个进程使用共享库时,其情况和RSS一模一样。
USS:表示一个进程本身占用的内存空间大小,不包含其它任何成分,这是表示进程内存大小的最好方式!
可以看到:VSS>=RSS>=PSS>=USS查看单个app的内存使用情况
adb shell dumpsys meminfo app的包名 ---------------如果这个app有多进程,统计起来会显示不全推荐下面这个
dumpsys meminfo --package app的包名 可以看到app多进程的内存消耗,这个app包含2个进程 实际消耗应该是(50638+76563)/1024=124M
例如dumpsys meminfo --package com.test.app
更详细的说明请看:
-
android adb查看手机内存使用情况
2020-08-05 17:25:511.查看设备节点内存adb shell df 2.查看磁盘内存和运行内存:adb shell free 3.查看内存详细数据adb shell cat /proc/meminfo -
Android系统adb命令查看CPU与内存使用率
2021-01-15 08:44:181 查看内存信息命令:adb shell dumpsys meminfo输入命令:dumpsys meminfo pid,比如查看手机安装的360安全卫士,那么实际命令应该为:dumpsys meminfo 3253,如下图所示:参数含义:dalvik : dalvik使用的内存... -
[获取手机信息]-通过 ADB 命令获取手机信息
2022-06-02 10:04:29通过 ADB 命令获取手机信息 ADB 常用查看命令 使用 -l 查看设备详细信息 查看机型 查看电池状况 查看分辨率 查看屏幕密度 查看显示屏参数 查看 android_id 查看 IMEI 查看 Android 系统版本 查看 IP 地址 查看 Mac ... -
hp adb命令,查看内存,CPU主频等信息。
2021-06-06 16:41:57The adb command provides a way to gain useful information about a number of thesystems configuration areas.To determine the physical memory (RAM) :for HP-UX 10xexample:echo physmem/D | adb /stand/vmu.... -
adb 实时检测手机内存
2020-11-27 11:26:42查看手机连接的设备 如果有多个设备,后面的命令加上 -s 设备id eg adb -s 设备id shell dumpsys meminfo 查看设备所有进程的内存信息 adb shell dumpsys meminfo 查看某一个进程的内存信息 adb shell dumpsys ... -
通过 adb 命令获取手机应用性能数据 (CPU、内存、流量)
2020-12-20 06:26:10由于工作需要获取安卓手机游戏应用运行时的性能数据,上网学习了一些知识,整理记录下。... 获取内存数据(1)手机总内存命令:adb shell cat /proc/meminfo |findstr MemTotal执行:(2)运行内存① 基本内存... -
常用adb命令.docx
2020-05-10 16:59:14常用的ADB命令总结,包括:连接设备,查看机型,查找包名,查看apk文件路径,文件传输,列出索引正在运行的程序,实时查看日志,安装卸载应用,获取内存/cpu信息、启动/停止应用和服务等等 -
通过adb命令获取手机应用性能数据(CPU、内存、流量)
2021-01-26 13:29:50adb shell top -m xx查看XX个进程数adb ... 获取CPU数据命令:adb shelltop -n -1 | find "package信息"adb shell top -n 1|findstr "\ \" 才能加上列名信息执行:或者也可以这样,查看指定包的cpu使用情况adb shel... -
Android 获取手机总内存和可用内存信息,博客附adb方式
2018-05-10 20:20:37Android 获取手机总内存和可用内存信息,博客附adb方式 https://blog.csdn.net/qq_31939617/article/details/80272759 -
adb命令读取Android手机内存卡文件
2019-11-28 15:17:06最近在跟一个厂家调试外设装备,这个机器的系统是Android的,但是他不能通过数据线连接电脑来传输手机存储中的文件,所以只能通过adb命令来取出内存卡中的文件,修改之后再用adb命令放回去。此文以mac电脑的地址为例... -
adb命令获取手机信息
2021-03-08 10:46:321、获取手机系统信息( CPU,厂商名称等 adb shell "cat /system/build.prop | grep "product"" 2、获取手机系统版本 adb shell getprop ro.build.version.release 3、获取手机系统api版本 adb shell getprop ... -
ADB——查看手机设备信息
2021-09-07 18:01:38查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery ''' Current Battery Service state: AC powered: false USB powered: true Wireless powered: false ... -
Android使用adb命令查看CPU信息
2021-06-06 10:15:14使用ADB命令查看CPU信息命令如下:1.adb shell2.cat /proc/cpuinfo查看到的信息如下(注意一次只能连接一台设备):上面这款就是64位CPU的华为机型。上面这款就是32位的如果出现adb shell 不能打开的情况,需要将adb.... -
用ADB命令给手机安装apk文件
2022-01-17 17:52:35用ADB命令给手机安装apk应用包和卸载手机已有的应用 -
ADB 查看手机内文件
2021-11-29 06:06:02adb shell 进入手机内存 cd sdcard/DCIM/Camera [oliveryty@localhost ~]$ adb shell HWEML:/ $ cd sdcard/DCIM/Camera HWEML:/sdcard/DCIM/Camera $ ls -
【性能测试】使用adb命令查看app的性能参数:启动时间、cup、流量、电量、内存
2021-01-12 17:21:04app的启动与停止启动app的命令:adb shell am start -W -n packagename/activity(需启动的绝对路径)启动凤凰新闻的具体命令是:adb shell am start -W -n com.ifeng.news2/.activity.SplashActivity参考文章:... -
adb简介,基础命令和查看手机日志
2020-11-28 22:56:41文章目录1.ADB介绍2.adb的基础命令3.adb logcat查看手机日志 1.ADB介绍 ADB是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机) 它的主要功能有: 运行设备的shell... -
Android 常用 adb 命令
2020-12-21 16:52:18更多文章:一、基础操作安装appadb install -r xxx.apk //覆盖安装,保留数据和缓存文件adb install -s xxx.apk //安装apk到sd卡adb install -f xxx.apk //安装apk到内部系统内存adb install -d xxx.apk //安装低... -
adb 查看磁盘占用_常用ADB命令使用汇总
2021-01-26 13:27:551. 查看设备 adb devices这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示2. 安装软件 adb install 软件包的名称这个命令将指定的apk文件安装到设备上 adb install 路径\app-weichi-... -
adb常用命令
2021-08-08 12:40:531、查看adb版本: adb version 2、查看设备连接情况: 命令: adb devices //输出 List of devices attached ba709211 device 192.168.31.87:5555 device 释: -s 指定相应 serialNumber 号的设备/模拟器为命令... -
Mac ADB 命令连接 android手机并进行各种操作
2021-01-12 10:59:03获取序列号:adb get-serialno查看连接计算机的设备:adb devices重启机器:adb reboot重启到bootloader,即刷机模式:adb reboot bootloader重启到recovery,即恢复模式:adb reboot recovery查看log:adb logcat...