APP_CPU使用率

一、CPU使用率原理

android系统内核是基于linux,在linux系统下 CPU 利用率分为用户态、系统态、空闲态

  • 用户态:表示CPU处于用户态执行的时间

  • 系统态:系统内核执行的时间

  • 空闲态:空闲系统进程执行的时间

CPU利用率=CPU执行非系统空闲进程的时间/CPU总的执行时间。这里的时间含义如下:

  • HZ:  Linux 核心每隔固定周期会发出 timer interrupt(时钟中断),HZ是用来定义每一秒有几次时钟中断。例如 HZ 为1000,就代表每秒有1000 次时钟中断。

  • Jiffies: 在Linux的内核中,有一个全局变量:Jiffies。Jiffies代表时间。它的单位随硬件平台的不同而不同。Jiffies的单位就是1/HZ

  • Intel 平台Jiffies的单位是1/100秒,这就是系统所能分辨的最小时间间隔。每个CPU时间片,Jiffies都要加1

  • CPU利用率计算公式:CPU利用率=(用户态Jiffies + 系统态 Jiffies)/ 总Jiffies

二、CPU测试方法

  • 使用top命令查看哪些进程是CPU的主要消耗者

>adb shell 

>top --help

-m  最多显示多少个进程

-n 刷新次数

-d  刷新间隔时间(默认5秒)

-s 按哪列排序

  • adb shell top命令

> adb shell top

第一组数据的含义:

400%cpu: CPU总量

33%user: 用户空间占用CPU的百分比

0%nice: 改变过优先级的进程占用cpu的百分比

30%sys   内核空间占用cpu的百分比

337%idle  空闲cpu百分比

0%iow   IO等待占用cpu的百分比

0%irq   硬中断(Hardware IRQ)占用cpu的百分比

0%sirq  软中(Software Interrupts)占用CPU的百分比

第二组数据的含义:

PID   进程id

USER: 进程所有者

PR:进程优先级

NI: nice值。负值表示高优先级,正值表示低优先级

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

RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:共享内存大小,单位kb

S :进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程

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

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

TIME+:进程使用的CPU时间总计,单位1/100秒

  • adb shell dumpsys cpuinfo [pkg or pid]

​​​​​​​

 该程序占用20%,其中9.8%是user,10%是kernel(内核)

查看单个应用的cpu占用情况:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值