我想查看Android中我的应用的CPU使用情况。为此,我使用了top和dumpsys cpuinfo。我计算了top命令的平均5分钟(cpu测量之间的1秒间隔)。例如,一旦我的应用程序在5分钟内获得19%,但下次我在5分钟内获得17%。我对dumpsys做了同样的事情。他们的结果略有不同。
主要问题是: 一个比另一个更准确吗?
我需要高精度的CPU使用率。
此外,我可以更改dumpsys cpuinfo的时间跨度,使其得出过去5分钟的平均值吗?
更新: 这不是像one这样的重复问题。
答案 0 :(得分:1)
我建议使用dumpsys。根据我的经验,TOP从各种来源获得信息,一些直接和一些估计。这些估算在早期的架构中是必要的,因为没有任何方法可以直接测量某些统计数据。现在,很多这些测量都可以从最低级别获得。 TOP的主要问题是确定它是否已更新为直接获得这些测量值,还是仍在估算它们。
相反,dumpsys gets its info from /proc。这些测量值处于最低水平或非常接近。因此,随着体系结构的变化,/ proc更有可能被更新。
问题的第二部分提出了/ proc的缺陷之一。 / proc通常记录很少,包括采样率等。我还没有看到/ proc(以及dumpsys)的采样率可以设置的情况,但这并不意味着这样的能力不会存在。 (通常,采样率实际上与数据一起被丢弃。)