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

什么是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
APP性能测试之CPU测试点-Android_第1张图片

字段解释:
上面四个主要为总体情况,如下:
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 包名
APP性能测试之CPU测试点-Android_第2张图片

adb shell (最好先进入adb shell,否则会提示grep不是内部命令)
top | grep 包名
APP性能测试之CPU测试点-Android_第3张图片

谢谢观看~

你可能感兴趣的:(App测试,android)