Lesen der CPU-Nutzungsdaten

113

Bei Ice Cream Sandwich ist eine Option in den Entwickleroptionen "CPU-Auslastung anzeigen", wodurch eine Überlagerung auf dem Bildschirm hinzugefügt wird (siehe Abbildung unten).

Meine Frage ist, wie lese ich die Daten? Ich vermutete, dass die Paketnamen der derzeit aktive Prozess sind, aber was bedeuten die roten und grünen Balken dahinter? Was sind auch die 3 Zahlen oben auf den Paketen?

Geben Sie hier die Bildbeschreibung ein

XGouchet
quelle
1
Haben wir etwas Ähnliches für RAM?
Behnam
2
Meine 3 "Lastdurchschnitte" sind ungefähr 9,0. Die grünen und roten Balken sind fast unsichtbar und erreichen in grafisch intensiven Spielen eine Bildschirmbreite von etwa 5%, woraufhin die "Lastdurchschnitte" etwa 10,0 erreichen. Mein Telefon ist ein Quadcore und der Akku hält ewig. Ich denke, die Antworten hier sind unvollständig.
John
1
@Campiador Dies ist ungefähr 1 Jahr zu spät, aber für RAM können Sie c: \> adb shell vmstat <ENTER> ausführen, um Informationen zum Speicher zu überprüfen. CD über dein Android-SDK-Windows \ Plattform-Tools \ für ADB.
Raddevus

Antworten:

77

Dies sollte der Unix-Lastdurchschnitt sein. Wikipedia hat einen schönen Artikel darüber.

Die Zahlen geben die durchschnittliche Auslastung der CPU in verschiedenen Zeitintervallen an. Von links nach rechts: letzte Minute / letzte fünf Minuten / letzte fünfzehn Minuten

nkr
quelle
2
Auf der Entwicklerseite: CPU-Auslastung anzeigen Zeigt die CPU-Anzeigen oben auf dem Bildschirm an und zeigt an, wie viel CPU verwendet wird. Der obere rote Balken zeigt die gesamte CPU-Auslastung und der grüne Balken darunter die CPU-Zeit, die für die Zusammenstellung des Bildschirms aufgewendet wurde. Hinweis: Sie können diese Funktion nach dem Einschalten nicht deaktivieren, ohne den Emulator neu zu starten. developer.android.com/tools/debugging/debugging-devtools.html
Rolf
44
"Grün ist die Zeit im User-Space, Rot ist die Zeit im Kernel, Blau ist die Interrupt-Zeit." - Dianne Hackborn groups.google.com/forum/?fromgroups=#!topic/android-platform/…
Bo.
1
Gibt es einen Balken pro Kern? Ich sehe nur 2 Balken, aber ich habe ein Quadcore-Gerät. Bedeutet das, dass ich nicht alle meine Kerne benutze?
Ken
4
@ Ken: Die Balken sind die durchschnittliche Last der gesamten CPU, nicht die Kerne. Die obere Leiste zeigt die CPU-Auslastung des Betriebssystems und aller Programme und die anderen Leisten zeigen die CPU-Auslastung des jeweiligen Programms. Also keine Sorge, Android verwendet alle Kerne.
nkr
1
Ich bin ein bisschen verwirrt. Dianne Hackborn sagt: Grün = Benutzerbereich, Rot = Kernel, Blau = Interrupt, aber auf der Entwicklerseite heißt es: Rot = Gesamt-CPU-Auslastung, Grün = Zusammensetzen des Bildschirms. Klingt nicht genau gleich, oder?
Tobias Reich
2

Wie andere Antworten gezeigt haben, repräsentieren die Zahlen auf UNIX-Systemen die durchschnittliche CPU-Auslastung über einen Zeitraum von 1/5/15 Minuten. Aber unter Linux (und folglich Android) ist das, was es darstellt, etwas anderes.

Nach einem Kernel-Patch aus dem Jahr 1993 (ein ausführlicher Artikel zu diesem Thema ) entsprechen die durchschnittlichen Auslastungszahlen unter Linux nicht mehr ausschließlich der CPULaden: Da die Berechnung nicht nur CPU-gebundene Prozesse berücksichtigt, sondern auch Prozesse im unterbrechungsfreien Wartezustand - war das ursprüngliche Ziel, E / A-gebundene Prozesse auf diese Weise zu berücksichtigen, um mehr von einer "Systemlast" als nur von CPU-Last darzustellen . Das Problem ist, dass seit 1993 die Verwendung des unterbrechungsfreien Status im Linux-Kernel zugenommen hat und normalerweise keinen E / A-gebundenen Prozess mehr darstellt. Das Problem wird durch einige Linux-Entwickler weiter verschärft, die unterbrechungsfreie Wartezeiten als einfaches Warten verwenden, um zu vermeiden, dass Signale in ihren Implementierungen berücksichtigt werden. Infolgedessen können wir unter Linux (und Android) verzerrte Durchschnittszahlen mit hoher Last sehen, die die tatsächliche Last nicht objektiv darstellen. Es gibt Android-Benutzerberichte über unangemessene Durchschnittswerte bei hoher Last im Gegensatz zu einer geringen CPU-Auslastung. Beispielsweise, Mein altes Android-Handy (mit 2 CPU-Kernen) zeigte normalerweise eine durchschnittliche Auslastung von ~ 12, wenn das System und die CPUs im Leerlauf waren. Daher erweisen sich durchschnittliche Ladezahlen unter Linux (Android) nicht als zuverlässige Leistungsmetrik.

Slider2k
quelle
1

Weitere Informationen zum "Lastdurchschnitt" zeigen die CPU-Auslastung über 1 Minute, 5 Minuten und 15 Minuten

Linux, Mac und andere Unix-ähnliche Systeme zeigen "durchschnittliche" Ladezahlen an. Diese Zahlen geben an, wie ausgelastet die CPU, die Festplatte und andere Ressourcen Ihres Systems sind. Sie sind zunächst nicht selbsterklärend, aber es ist leicht, sich mit ihnen vertraut zu machen.

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%. 

Sie haben wahrscheinlich ein System mit mehreren CPUs oder eine Multi-Core-CPU. Die durchschnittlichen Lastzahlen funktionieren auf einem solchen System etwas anders. Wenn Sie beispielsweise einen Lastdurchschnitt von 2 auf einem System mit einer CPU haben, bedeutet dies, dass Ihr System zu 100 Prozent überlastet war. Während des gesamten Zeitraums verwendete ein Prozess die CPU, während ein anderer Prozess wartete. Auf einem System mit zwei CPUs wäre dies eine vollständige Auslastung - zwei verschiedene Prozesse verwendeten die ganze Zeit zwei verschiedene CPUs. Auf einem System mit vier CPUs wäre dies die halbe Auslastung - zwei Prozesse verwendeten zwei CPUs, während zwei CPUs im Leerlauf saßen.

Um die durchschnittliche Auslastungszahl zu verstehen, müssen Sie wissen, wie viele CPUs Ihr System hat. Ein Lastdurchschnitt von 6,03 würde bedeuten, dass ein System mit einer einzelnen CPU massiv überlastet war, aber auf einem Computer mit 8 CPUs wäre dies in Ordnung.

Weitere Infos: Link

j-shan huang
quelle