【问题标题】:Reduce CPU usage in Android减少 Android 中的 CPU 使用率
【发布时间】:2015-08-02 23:20:50
【问题描述】:

需要帮助来解决这个谜题。

我有一个 android 4.4 四核设备。给定四核,我假设在必要时,操作或负载将在所有核心之间平均分配。

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

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

后来我读到了下面的链接,这在某种程度上解释了这个统计数据是关于什么的。

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

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

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

请帮忙。

【问题讨论】:

    标签: android linux-kernel cpu processor


    【解决方案1】:

    您对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 的任务,这通常被解释为等待 disc I/O,但并非总是如此。由于各种原因,尤其是在嵌入式设备(如手机)上,设备驱动程序经常以不间断的状态等待各种可能触发非常非常少的事件。

    在我完全闲置的基于 Qualcomm SoC(4 核)的手机上,我有 15 个内核线程处于 "D" 状态。所有这些线程几乎总是处于休眠状态,但它们确实算作活动任务,使我的loadavg 始终高于 15。

    结论

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

    【讨论】:

    • 非常有说服力..你认为android应该将“show cpu usage”重命名为“show cpu load”吗?
    • @SanjayHerle:这只是一个名字,它是为开发人员准备的,所以他们可能不在乎。他们向您展示了 3 个数字,所以如果您知道它们的含义,您就会知道它是 loadavg。此外,此设置将向您显示的不仅仅是loadavg,还有一些显示真实 CPU 使用情况的图形条等。与往常一样 - 要从任何调试信息中得出结论,您真的必须了解它实际显示的内容,所以名称真的没那么重要。
    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 2016-01-07
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多