TOP 命令与 dumpsys cpuinfo:哪个更准确?

TOP command vs dumpsys cpuinfo: Which one is more accurate?

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

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

我需要 CPU 用法的高精度。

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

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

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

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

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