降低Android中的CPU使用率

时间:2015-05-21 10:32:52

标签: android linux-kernel cpu processor

需要帮助解决这个谜团。

我有一个Android 4.4四核设备。给定四核,我假设,必要时,所有核心的操作或负载将平均共享。

现在我已经开始在设置中检查“show cpu usage” - >开发者选项 - >显示cpu使用情况。

我想看看它显示12.0 / 11.7 / 8.0。 (根据linux,这个统计数据是关于显示1分钟/ 5分钟/ 15分钟的负载)

后来我在下面看了这个链接,这有点解释,这是什么统计数据。

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

我是四核,我需要将这个数字减少到2以下..

我尝试删除通过网络连续运行的谷歌应用程序等。但仍然无法将其降低到8以下。

请帮忙。

1 个答案:

答案 0 :(得分:2)

您对loadavg的理解在这里是错误的 - 它与CPU利用率不对应。这是常见的错误,因为许多loadavg机制的描述并不完全正确。如果查看proc(5)手册页,可以阅读:

The first three fields in this file are load average figures giving the
number of jobs in the run queue (state R) or waiting for disk I/O (state
D) averaged over 1, 5, and 15 minutes.

这里最重要的是"D"(不间断)状态。手册页将其描述为等待I / O的任务,这通常被解释为等待光盘 I / O,但并非总是如此。由于各种原因,特别是在嵌入式设备(如手机)上,设备驱动程序通常会在不间断状态下等待各种事件,这些事件可能非常非常罕见。

在我完全闲置的Qualcomm SoC(4核心)手机上,我有"D"状态的15个内核线程。所有这些线程几乎总是在睡觉,但他们确实计入主动任务,使我的loadavg总是高于15。

结论

loadavg不是您应该寻找的指标。如果要查看实际使用的CPU数量,请查看CPU利用率(如top命令的输出)。