计算Android中进程的CPU使用率

计算Android中进程的CPU使用率,第1张

计算Android中进程的CPU使用率 错误说明

我怀疑您将其中的值

/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
用作您的
hertz
值。这是不正确的,因为该文件为您提供了CPU硬件时钟频率,但是您必须使用Linux内核时钟频率作为您的
hertz
值。

CPU硬件时钟和Linux内核时钟不同。Android运行的Linux内核具有自己的计时器(时钟),并以一定的频率更新。此计时器更新的频率是内核赫兹(

HZ
)值。

由于历史原因,Linux
proc和sys文件中列出的时钟滴答值

HZ
通过Linux内核
USER_HZ
常数从内核频率缩放到公共频率。
USER_HZ
我们必须
hertz
在计算中使用此常量作为值。

数据采集
  • 正常运行时间
    226.06
  • utime
    38
    时钟滴答
  • stime
    32
    时钟滴答
  • 开始时间
    13137
    时钟滴答
  • Hertz
    100
    (Linux内核
    USER_HZ
    常数)
    • 这是基于未修改的Android系统的假设。
计算方式

total_time = utime + stime = 38 + 32 = 70

seconds = uptime - (starttime / Hertz) = 226.06 - (13137 / 100) = 94.69

cpu_usage = 100 * ((total_time / Hertz) / seconds) = 100 * ((70 / 100) /94.69) = 0.7392...

您的进程的总CPU使用率约为 0.739%
。如果这看起来很小,请记住您的进程与系统上的所有其他进程共享CPU:大多数普通进程在其整个生命周期中都处于空闲状态,因此任何一个进程通常平均总CPU使用率较低。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5015335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存