吴老的《selenium webdriver 实战宝典》出版了!
1.使用adb 命令查看内存
1.1 使用dumpsys meminfo 命令
dumpsys命令是android中用于打印service相关状态信息的命令,它的原理是Android中系统相关service通过重写dump接口来实现的。
dumpsys功能比较强大,本文只对其查看内存信息的功能做介绍,其他的功能不做过多阐述。
使用方法:
1.使用adb shell 进入adb的shell模式
2.输入dumpsysmeminfo 包名,如查看APP的内存信息,输入dumpsys meminfo 包名即可显示如下图所示信息
名称
含义
updatetime
记录运行时间
realtime
实际运行时间
Pss Total
实际使用的物理内存总量
Private Dirty
私有被写入的内存
Private Clean
私有未被写入的内存
Swapped Dirty
交换内存
Heap Size
堆大小
Heap Alloc
堆中已被分配内存
Heap Free
堆中未被分配内存
Native Heap
Linux进程堆
Dalvik Heap
Dalvik虚拟机堆
Stack
栈
Ashmem
匿名共享内存
mmap
文件映射内存
名称
含义
App Summary
App内存信息总览
Objects
对象信息
SQL
SQL信息
DATABASES
数据库信息
通过dumpsys meminfo获取的信息中,主要关注如下几个字段
(1)Native/Dalvik 的Heap 信息
具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
(2)Total 的PSS 信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。
1.2 使用procrank 命令
procrank工具,能够列出进程所占用的内存情况,并默认使用PSS进行由高到低的排序。
可以看到,内存的耗用情况有四种不同的表现形式:
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,搜索“光荣之路”可以收听吴老和他的朋友们分享的35小时测试知识语音
光荣之路
软件测试培训
官网:www.gloryroad.cn
微信公众号:gloryroadtrain
性能测试QQ群:415987441
测试招聘QQ群: 203715128
Java2群:569534627
Python群:457561756
咨询V信:mengqiao626
咨询QQ:53617154
光荣之路公开课大讲堂:413908278
标签: adb安卓手机版