如何读取库存CPU使用率数据


113

在Ice Cream Sandwich上,“开发人员选项”中的一个选项是“显示CPU使用情况”,它在屏幕上添加了一个覆盖图(请参见下面的屏幕截图)。

我的问题是,如何读取数据?我猜想软件包名称是当前活动的进程,但是后面的红色和绿色条是什么意思?包裹顶部的3个数字是什么?

在此处输入图片说明


1
RAM是否有与此类似的东西?
Behnam

2
我的3个“平均负载”约为9.0。绿色和红色的条几乎不可见,在图形密集型游戏中达到约5%的屏幕宽度,因此“平均负载”达到约10.0。我的手机是四核,并且电池可以持续使用。我认为这里的答案不完整。
约翰

1
@Campiador这大约晚了一年,但是对于RAM,您可以运行c:\> adb shell vmstat <ENTER>来检查有关内存的信息。将CD移到您的android-sdk-windows \ platform-tools \中以获取adb。
raddevus

Answers:


77

这应该是Unix的平均负载。维基百科上有一篇很好的文章。

这些数字表示不同时间间隔内CPU 的平均负载。从左到右:最后一分钟/最后五分钟/最后十五分钟


2
从开发人员站点:显示CPU使用情况在屏幕顶部显示CPU仪表,显示正在使用的CPU数量。顶部的红色条显示了总体CPU使用率,下面的绿色条显示了合成屏幕所花费的CPU时间。注意:启用此功能后,如果不重新启动模拟器,则无法将其关闭。 developer.android.com/tools/debugging/debugging-devtools.html
Rolf 2012年

44
“绿色是用户空间中的时间,红色是内核中的时间,蓝色是io中断时间。” -Dianne Hackborn groups.google.com/forum/?fromgroups =#
博。

1
每个核心有一个酒吧吗?我只看到2条,但是我有一个四核设备。这是否意味着我没有使用所有内核?
肯(Ken)

4
@Ken:条形图是整个CPU的平均负载,而不是核心。顶部的栏显示操作系统和所有程序的CPU使用率,其他栏显示特定程序的CPU使用率。因此,请放心,Android使用所有内核。
nkr 2012年

1
我有点困惑。Dianne Hackborn说:绿色=用户空间,红色=内核,蓝色=中断,但在开发人员站点上则说:红色=总体CPU使用率,绿色=合成屏幕。听起来不完全一样,对吗?
Tobias Reich 2014年


2

正如其他答案所指出的那样,在UNIX系统上,数字表示1/5/15分钟内的CPU平均负载。但是在Linux(因此是Android)上,它代表的是不同的东西。

在追溯到1993年的内核补丁(有关该主题的深入文章)之后,在Linux中,平均负载数不再严格代表CPU负载:因为计算不仅要考虑与CPU绑定的进程,还要考虑处于不间断等待状态的进程-最初的目标是用这种方式考虑与I / O绑定的进程,以表示更多的“系统负载”,而不仅仅是CPU负载。问题是,自1993年以来,Linux内核中对不间断状态的使用已经增长,并且不再典型地代表I / O绑定进程。一些Linux开发人员使用不间断的等待作为避免在其实现中容纳信号的简单等待,进一步加剧了这个问题。结果,在Linux(和Android)中,我们可以看到偏斜的高负载平均数不能客观地代表实际负载。有Android用户报告称,平均负载不合理,而CPU利用率较低。例如,我的旧Android手机(带有2个CPU内核)通常在系统和CPU空闲时显示平均负载约为12。因此,事实证明,Linux(Android)中的平均负载数并不是可靠的性能指标。


1

有关“平均负载”的更多信息,显示了1分钟,5分钟和15分钟内的CPU负载

Linux,Mac和其他类似Unix的系统显示“平均负载”数字。这些数字告诉您系统的CPU,磁盘和其他资源有多忙。乍一看,它们不是很容易理解,但是很容易熟悉它们。

WIKI: example, one can interpret a load average of "1.73 0.60 7.98" on a single-CPU system as:

during the last minute, the system was overloaded by 73% on average (1.73 runnable processes, so that 0.73 processes had to wait for a turn for a single CPU system on average).
during the last 5 minutes, the CPU was idling 40% of the time on average.
during the last 15 minutes, the system was overloaded 698% on average (7.98 runnable processes, so that 6.98 processes had to wait for a turn for a single CPU system on average) if dual core mean: 798% - 200% = 598%. 

您可能有一个具有多个CPU或多核CPU的系统。平均负载数在这种系统上的工作方式略有不同。例如,如果您在单CPU系统上的平均负载为2,则意味着您的系统过载了100%-在整个时间段内,一个进程正在使用CPU,而另一个进程正在等待。在具有两个CPU的系统上,这将是完整的用法-两个不同的进程始终使用两个不同的CPU。在具有四个CPU的系统上,这将是一半的使用率-两个进程使用两个CPU,而两个CPU处于空闲状态。

要了解平均负载数,您需要知道系统有多少个CPU。平均负载为6.03表示一个CPU的系统严重超载,但是在具有8个CPU的计算机上就可以了。

更多信息:链接


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.