Android整机性能监控:多核CPU相关数据的获取(使用率、主频)

根据最近的调研,Android整机的性能主要有如下方面:

1、CPU

2、内存

3、耗电量

4、网络

本文着重介绍CPU相关数据的获取,在多核情况下,对每个CPU运行情况进行监控,获取相关的属性。

A. 当前主频,通过 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 获取,cpu0代表第一个CPU

B. 最大主频,通过 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq 获取,cpu0代表第一个CPU

C. 最小主频,通过 cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 获取,cpu0代表第一个CPU

D.使用率,通过 cat /proc/stat 获取,文件内容如下:第一行代表整体CPU的使用情况,cpu0为第一个cpu的使用情况,不同的列数代表cpu的耗时情况,如第4列代表的就是空闲时间idle的值。


shell@V4:/ $ cat proc/stat
cat proc/stat
cpu  3866978 127487 3035722 26246226 432119 27 52118 0 0 
cpu0 3004154 33263 2209598 18130481 92464 16 51202 0 0 0


也就是说使用率我们无法直接获取,需要通过计算,具体的计算方式如下:

usage=(total-idel)/total

说明:使用率指得是cpu在某段时间内被使用的比率,因此事关两个时刻(t1、t2)的值。

分别需要在t1时刻和t2时刻获取total和idel

t1时刻获取: total_t1=所有值相加(同一行) idle_t1=第4个数值

t2时刻获取: total_t2=所有值相加(同一行) idle_t2=第4个数值

上述公式中的

total = total_t2 - total_t1

idle = idle_t2 - idle_t1

这是在国外的资料中说的,可是事实上运行的时候,这样的计算方式可能会出现负数,这边还有点疑问,如果哪位大神知

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值