【问题标题】:TOP command vs dumpsys cpuinfo: Which one is more accurate?TOP 命令与 dumpsys cpuinfo:哪个更准确?
【发布时间】:2025-12-26 11:30:11
【问题描述】:

我想查看我的应用在 Android 中的 CPU 使用情况。为此,我使用了 top 和 dumpsys cpuinfo。我计算了 top 命令的平均时间为 5 分钟(cpu 测量之间的间隔为 1 秒)。例如,有一次我的应用在 5 分钟内获得了 19%,但下一次我在 5 分钟内获得了 17%。我对dumpsys做了同样的事情。他们的结果略有不同。

主要问题是: 一个比另一个更准确吗?

我需要高精度的 CPU 使用率。

此外,我可以更改 dumpsys cpuinfo 的时间跨度,使其给出过去 5 分钟的平均值吗?

更新: 它不是像one 这样的重复问题。

【问题讨论】:

标签: android shell unix cpu-usage dumpsys


【解决方案1】:

我建议使用 dumpsys。以我的经验,TOP 从各种来源获取信息,一些是直接的,一些是估计的。在早期的架构中估计是必要的,因为没有任何方法可以直接测量某些统计数据。现在,这些测量中的许多都可以从最低级别获得。 TOP 的主要问题是弄清楚它是否已更新为直接获取这些测量值,还是仍在估计它们。

相比之下,dumpsys gets its info from /proc。这些测量值处于最低水平或非常接近最低水平。因此,随着架构的变化,/proc 更有可能被更新。

您问题的第二部分提出了 /proc 的缺陷之一。 /proc 通常记录得很差,包括采样率等。我还没有看到可以设置 /proc(以及 dumpsys)的采样率的情况,但这并不意味着不存在这种能力。 (通常,采样率实际上是与数据一起转储的。)

【讨论】:

  • 感谢您的解释。我认为 dumpsys cpuinfo 显示最后 5-6 秒的信息。是不是我以 1 秒的间隔通过脚本运行此命令,然后在 5 或任何特定时间段内平均结果?另一个问题:我怎样才能得到小数的dumpsys cpuinfo?最重要的是,我使用了busybox。