Android性能测试——获取内存和cpu使用情况
Android性能测试——获取内存和cpu使用情况
在测试Android应用的过程中,内存和cpu值大小是测试的重点之一,本文将列举几种工作中常用的获取方式。
一、使用top获取内存和cpu信息
获取内存和cpu信息的最简单方式就是使用adb shell 自带的top命令,在测试过程中,电脑连接设备,使用adb shell top命令,即可得到近乎实时的应用内存使用情况。Android8.0+以上的设备或许有些不同,但内容
Android8.0以下的设备
Android8.0以下的设备,top后可以跟一些参数来限制打印的结果
top 后可跟的参数如下
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [-t ] [ -h ]
-m num Maximum number of processes to display. 最多显示多少个进程
-n num Updates to show before exiting. 刷新次数
-d num Seconds to wait between updates. 刷新间隔时间(默认5秒)
-s col Column to sort by (cpu,vss,rss,thr). 按哪列排序
-t Show threads instead of processes. 显示线程信息而不是进程
-h Display this help screen. 显示帮助文档
打印的top结果如下
User 8%, System 4%, IOW 0%, IRQ 0%
User 153 + Nice 1 + Sys 91 + Idle 1600 + IOW 0 + IRQ 0 + SIRQ 1 = 1846PID PR CPU% S #THR VSS RSS PCY UID Name2103 2 7% S 75 1807528K 187764K fg u0_a16 com.android.systemui438 0 2% S 15 145984K 8428K fg system /system/bin/surfaceflinger1333 0 1% S 176 2404956K 137780K fg system system_server
11112 0 0% S 1 0K 0K fg root kworker/u16:5
12102 6 0% R 1 5200K 1776K fg shell top
...
对于top打印的结果,第二行各个数据解释:
User 处于用户态的运行时间,不包含优先值为负进程
Nice 优先值为负的进程所占用的CPU时间
Sys 处于核心态的运行时间
Idle 除IO等待时间以外的其它等待时间
IOW IO等待时间
IRQ 硬中断时间
SIRQ 软中断时间
第三行各个数据解释
PID 进程id
PR 优先级
CPU% 当前瞬时CPU占用率
S 进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程
THR 程序当前所用的线程数
VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存),是单个进程全部可访问的地址空间
RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存),是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
PCY 调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
UID 进程所有者的用户id
Name 进程的名称
Android8.0以上的设备
Android8.0及以上设备,top 后可跟的参数如下
Android8.0及以上设备的结果类似linux的结果,打印的top结果如下
[?25l [0m [H [J [s [999C [999B [6n [uTasks: 596 total, 2 running, 554 sleeping, 0 stopped, 0 zombie
Mem: 5862776k total, 5755700k used, 107076k free, 10264k buffers
Swap: 2293756k total, 0k used, 2293756k free, 2825024k cached
800%cpu 21%user 145%nice 76%sys 534%idle 10%iow 0%irq 14%sirq 0%host[7m PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS [0m7048 u0_a40104 30 10 1.3G 181M 106M R 124 3.1 0:17.86 dex2oat --zip-f+7083 shell 20 0 12M 2.4M 1.6M R 34.4 0.0 0:00.05 top4363 u0_a96 20 0 4.3G 81M 51M S 20.6 1.4 0:05.18 com.huawei.appm+351 root -2 0 0 0 0 S 20.6 0.0 0:02.00 [dhd_rxf]
...
对于top打印的结果,第二行各个数据解释:
Mem: 5862776k total, 5755700k used, 107076k free, 10264k buffers
表示
Mem total used free buffers: 总内存,已使用多少,空闲多少,缓冲区还有多少
第三行各个数据解释:
Swap: 2293756k total, 0k used, 2293756k free, 2825024k cached
表示
Swap total used free cached:交换区全部、已使用、空闲和缓冲交换空间
第四行各cpu运行状态:
800%cpu 21%user 145%nice 76%sys 534%idle 10%iow 0%irq 14%sirq 0%host
表示
cpu 全总的cpu能力,正常可以理解为有n核,总的就是n*100%
user: 运行(未调整优先级的) 用户进程的CPU占用
niced:运行已调整优先级的用户进程的CPU占用
sys: 运行内核进程的CPU占用
idle:空闲的cpu比率
iow IO wait: 用于等待IO完成的CPU比率
...
第五行是每个应用的具体信息,说明如下
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
表示
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb
SHR:shared memory 共享内存
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
%MEM:进程使用的可用物理内存百分比
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
ARGS:运行进程所使用的命令。进程名称(命令名/命令行)
二、使用cpuinfo和meminfo获取内存和cpu信息
无论对Android哪个版本,都可以获取应用的内存PSS( Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) )信息,命令如下:
adb shell dumpsys meminfo
无论对Android哪个版本,都可以获取应用cpu使用情况
adb shell dumpsys cpuinfo
Android性能测试——获取内存和cpu使用情况相关推荐
- 用python脚本查看电脑内存、CPU使用情况
有时为了对电脑.服务器做运行情况监控,需要获取内存.cpu的使用情况: # 先下载psutil库:pip install psutil # 下载地址 https://pypi.org/project/ ...
- ubuntu查看内存或cpu使用情况
单独查看内存使用情况的命令:free -m 查看内存及cpu使用情况的命令:top 也可以安装htop工具,这样更直观, 安装命令如下:sudo apt-get install htop 安装完后,直 ...
- 【云原生】监视Docker桌面的容器内存和CPU使用情况
目录 一.如何监视Docker桌面的容器内存和CPU使用情况 1.stats命令 2.Docker 统计命令stats是如何工作的 2.1.命令与描述 2.2.OPTIONS 2.3.例子 2.4.格 ...
- Ubuntu查看系统内存和CPU运行情况
Ubuntu下可以使用top命令查看当前内存和CPU使用情况 如下图 输入时主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行. ...
- ubuntu 查看内存及cpu使用情况
ubuntu查看内存及cpu使用情况 单独查看内存使用情况的命令: free -m 查看内存及cpu使用情况的命令: top 安装htop工具,查看更直观 安装命令如下:sudo apt-get in ...
- adb命令检测apk启动时间、内存、CPU使用情况、流量、电池电量等——常用的adb命令...
ADB:Android Debug Bridge,是Android SDK里一个可以直接操作安卓模拟器或真实设备的工具,颇为强大. 检测APP: adb shell am start -W packa ...
- Android性能测试-内存
前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有 ...
- android如何获取RAM和ROM使用情况
1.获取ram大小 两种方法: 第一从是从MemoryInfo中获取: private void getRamInfo1(){ActivityManager manager = (ActivityMa ...
- android开发获取内存、Native内存和虚拟内存的方式
获取各种内存的方法 1.获取内存使用率 public static double getMemoryUsageRate() {long runtimeMaxMemory = getRuntimeMax ...
最新文章
- VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置
- oracle xclock xmanager
- python dlib学习(十二):面部表情跟踪
- 广播网关GPC为MDS多媒体调度再添虎翼
- android歌词效果,自定义View:Android歌词控件
- Redis4.0.13 安装踩雷记录
- openwrt首次登录密码_什么是路由器登录密码 路由器登录密码介绍【详解】
- camera(16)---双摄持续扩散 摄像头供应链阵营变动加剧
- ERP、CRM、SCM、电子商务、BI、ITSS
- 计算机技术需要学单片机吗,手把手教你学51单片机
- js 日语索引 日文排序
- Ubuntu、CentOS、macOS测试服务器上传和下载速度
- c#阿里CSB接口对接--
- 网站图片怎么优化搜索排名
- 学习笔记——【python】GetGeoTransform()使用,gdal截取图像,使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
- To change the IDENTITY property of a column, the column needs to be dropped and recreated
- 代码高处走 从VC6到VC9移植代码问题说明
- python dtype=float 是32还是64_【Python】numpy数组用dtype=float16初始化的坑
- kaggle r语言_kaggle第三名解决方案拼图多语言毒性评论分类
- 百度搜索引擎服务器性能,百度搜索引擎的特点
热门文章
- 计算机断层扫描英语怎么说,“SPECT”是“Single-Photon Emission Computed Tomography”的缩写,意思是“单光子发射计算机断层扫描”...
- 【TWVRP】基于matlab模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】
- 冯宝宝说:Spring
- 甲方公司与乙方公司的思维有什么不一样?
- Recordset里的记录数
- 一元三次方程的求解问题
- 2016手机打印机驱动软件下载排行榜
- 职场中不可深交的五类人
- android 15K+面试题
- 在Oracle中如何暂估收入,oracleebsr12财务基础月结.pptx