APP性能测试之CPU测试点-Android

  • Post author:
  • Post category:其他




什么是CPU?

CPU就像人体的大脑,是负责读取和处理事务的核心部件,由运算器、控制器、寄存器以及实现它们之间联系的数据、控制及状态的总线构成。



Android CPU的三大状态及使用率的计算

用户态:即CPU处于用户态执行的时间

系统态:即CPU处于系统内核执行的时间

空闲态:即CPU处于空闲系统进程执行的时间



CPU使用率

使用率 = (用户态+系统态)/用户态+系统态+空闲态

Android中来源于Linux,所以也存在全局变量Jiffies(理解为时间,单位为1/HZ)

故Android CPU使用率 = (用户态Jiffies + 系统态Jiffies)/ 总Jiffies



使用率的获取方式

Linux中获取CPU使用率的方法为Top命令,Android只需加上adb shell即可

adb shell top

在这里插入图片描述

字段解释:

上面四个主要为总体情况,如下:

Tasks:系统现在一共有176个进程,其中处于运行中的有1个,173个在休眠,stopped状态0个,僵尸态(zombie)1个

僵尸态与stop态很接近,不同点在于stopped是进程退出,释放所有资源,而僵尸态资源没有得到完全释放

Mem:物理内存总量为4041008k;使用中内存总量683736k;空闲为3357272k;缓存内存量3412k

1024k=1Kb

Swap交换分区:交换区总量(0k);使用的交换区总量(0k);空闲(0k);缓冲交换区总量(323860k)

400%CPU:即CPU总量——四核

user:用户空间占用CPU百分比

sys:内核空间占用CPU的百分比

idle:空闲CPU的百分比

故CPU使用率为:(sys+user)/cpu

iow:IO等待占用CPU的百分比

irp:硬中断占用CPU的百分比

硬中断是由外部事件引起的,具有随机性和突发性

sirp:软中断占用CPU的百分比

软中断是软件实现的中断,常见为编译错误,是通讯进程之间用来模拟硬中断的一种方式

下面部分主要为进程详情,如下:

PID:进程id

User:进程所有者

PR:进程优先级

NI:nice值,负值表示高优先级,正值为低优先级,普通进程的NI值通常等于PR-20

VIRT:进程使用的虚拟内存总量,单位kb。VIRT=RES+SWAP

RES:进程使用的,未被换出的物理内存大小

SHR:共享内存大小

S:进程状态

D:不可中断的睡眠状态 R:运行 S:睡眠 T:停止 Z:僵尸态

%CPU:上次更新到现在CPU时间的占用百分比

%MEM:进程使用的物理内存百分比

TIME+:进程使用的CPU时间总计

ARGS:进程名称


对于单个APP,我们可以使用


adb shell dumpsys cpuinfo 包名


在这里插入图片描述


adb shell

(最好先进入adb shell,否则会提示grep不是内部命令)


top | grep 包名


在这里插入图片描述


谢谢观看~



版权声明:本文为m0_57098592原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。