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使用情况相关推荐

  1. 用python脚本查看电脑内存、CPU使用情况

    有时为了对电脑.服务器做运行情况监控,需要获取内存.cpu的使用情况: # 先下载psutil库:pip install psutil # 下载地址 https://pypi.org/project/ ...

  2. ubuntu查看内存或cpu使用情况

    单独查看内存使用情况的命令:free -m 查看内存及cpu使用情况的命令:top 也可以安装htop工具,这样更直观, 安装命令如下:sudo apt-get install htop 安装完后,直 ...

  3. 【云原生】监视Docker桌面的容器内存和CPU使用情况

    目录 一.如何监视Docker桌面的容器内存和CPU使用情况 1.stats命令 2.Docker 统计命令stats是如何工作的 2.1.命令与描述 2.2.OPTIONS 2.3.例子 2.4.格 ...

  4. Ubuntu查看系统内存和CPU运行情况

    Ubuntu下可以使用top命令查看当前内存和CPU使用情况 如下图 输入时主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行. ...

  5. ubuntu 查看内存及cpu使用情况

    ubuntu查看内存及cpu使用情况 单独查看内存使用情况的命令: free -m 查看内存及cpu使用情况的命令: top 安装htop工具,查看更直观 安装命令如下:sudo apt-get in ...

  6. adb命令检测apk启动时间、内存、CPU使用情况、流量、电池电量等——常用的adb命令...

    ADB:Android Debug Bridge,是Android SDK里一个可以直接操作安卓模拟器或真实设备的工具,颇为强大. 检测APP: adb shell am start -W packa ...

  7. Android性能测试-内存

    前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有 ...

  8. android如何获取RAM和ROM使用情况

    1.获取ram大小 两种方法: 第一从是从MemoryInfo中获取: private void getRamInfo1(){ActivityManager manager = (ActivityMa ...

  9. android开发获取内存、Native内存和虚拟内存的方式

    获取各种内存的方法 1.获取内存使用率 public static double getMemoryUsageRate() {long runtimeMaxMemory = getRuntimeMax ...

最新文章

  1. VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置
  2. oracle xclock xmanager
  3. python dlib学习(十二):面部表情跟踪
  4. 广播网关GPC为MDS多媒体调度再添虎翼
  5. android歌词效果,自定义View:Android歌词控件
  6. Redis4.0.13 安装踩雷记录
  7. openwrt首次登录密码_什么是路由器登录密码 路由器登录密码介绍【详解】
  8. camera(16)---双摄持续扩散 摄像头供应链阵营变动加剧
  9. ERP、CRM、SCM、电子商务、BI、ITSS
  10. 计算机技术需要学单片机吗,手把手教你学51单片机
  11. js 日语索引 日文排序
  12. Ubuntu、CentOS、macOS测试服务器上传和下载速度
  13. c#阿里CSB接口对接--
  14. 网站图片怎么优化搜索排名
  15. 学习笔记——【python】GetGeoTransform()使用,gdal截取图像,使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
  16. To change the IDENTITY property of a column, the column needs to be dropped and recreated
  17. 代码高处走 从VC6到VC9移植代码问题说明
  18. python dtype=float 是32还是64_【Python】numpy数组用dtype=float16初始化的坑
  19. kaggle r语言_kaggle第三名解决方案拼图多语言毒性评论分类
  20. 百度搜索引擎服务器性能,百度搜索引擎的特点

热门文章

  1. 计算机断层扫描英语怎么说,“SPECT”是“Single-Photon Emission Computed Tomography”的缩写,意思是“单光子发射计算机断层扫描”...
  2. 【TWVRP】基于matlab模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】
  3. 冯宝宝说:Spring
  4. 甲方公司与乙方公司的思维有什么不一样?
  5. Recordset里的记录数
  6. 一元三次方程的求解问题
  7. 2016手机打印机驱动软件下载排行榜
  8. 职场中不可深交的五类人
  9. android 15K+面试题
  10. 在Oracle中如何暂估收入,oracleebsr12财务基础月结.pptx