Jak czytać dane dotyczące użycia procesora podstawowego

114

Na Ice Cream Sandwich opcja w Opcjach programisty to „Pokaż użycie procesora”, która dodaje nakładkę na ekranie (patrz zrzut ekranu poniżej).

Moje pytanie brzmi, jak odczytać dane? Zgadłem, że nazwy pakietów są obecnie aktywnymi procesami, ale co oznaczają czerwone i zielone paski za nimi? Jakie są 3 cyfry na górze paczek?

wprowadź opis obrazu tutaj

XGouchet
źródło
1
Czy mamy coś podobnego do pamięci RAM?
Behnam
2
Moje 3 „średnie obciążenia” to około 9,0. Zielone i czerwone paski są prawie niewidoczne, osiągając około 5% szerokości ekranu w grach intensywnych graficznie, po czym „średnie obciążenia” osiągnęły około 10,0. Mój telefon jest czterordzeniowy, a bateria wystarcza na wieki. Myślę, że odpowiedzi tutaj są niekompletne.
Jan
2
@Campiador Jest to opóźnienie około 1 roku, ale w przypadku pamięci RAM można uruchomić c: \> adb shell vmstat <ENTER>, aby sprawdzić informacje o pamięci. CD do twojego android-sdk-windows \ platform-tools \ dla adb.
raddevus

Odpowiedzi:

78

Powinno to być średnie obciążenie systemu Unix. Wikipedia ma fajny artykuł na ten temat.

Liczby pokazują średnie obciążenie procesora w różnych odstępach czasu. Od lewej do prawej: ostatnia minuta / ostatnie pięć minut / ostatnie piętnaście minut

nkr
źródło
2
Ze strony programistów: Pokaż użycie procesora Wyświetla liczniki procesora u góry ekranu, pokazujące, ile procesor jest używany. Górny czerwony pasek pokazuje ogólne użycie procesora, a zielony pasek pod nim pokazuje czas procesora spędzony na komponowaniu ekranu. Uwaga: nie można wyłączyć tej funkcji po jej włączeniu bez ponownego uruchamiania emulatora. developer.android.com/tools/debugging/debugging-devtools.html
Rolf ツ
45
„Zielony to czas w przestrzeni użytkownika, czerwony to czas w jądrze, niebieski to czas przerwania io”. - Dianne Hackborn groups.google.com/forum/?fromgroups=#!topic/android-platform/…
Bo.
1
Czy na rdzeń przypada jeden pasek? Widzę tylko 2 paski, ale mam urządzenie czterordzeniowe. Czy to oznacza, że ​​nie używam wszystkich swoich rdzeni?
Ken
5
@Ken: Słupki to średnie obciążenie całego procesora, a nie rdzeni. Górny pasek pokazuje użycie procesora przez system operacyjny i wszystkie programy, a pozostałe paski pokazują użycie procesora przez określony program. Więc nie martw się, Android używa wszystkich rdzeni.
nkr
1
Jestem trochę zdezorientowany. Dianne Hackborn mówi: zielony = przestrzeń użytkownika, czerwony = jądro, niebieski = przerwanie, ale na stronie programisty jest napisane: czerwony = ogólne zużycie procesora, zielony = komponowanie ekranu. Nie brzmi dokładnie tak samo, prawda?
Tobias Reich
10

Jak dotąd było to najbardziej pomocne źródło informacji na ten temat, jakie udało mi się znaleźć. Najwyraźniej liczby NIE reprezentują średniego obciążenia w%: http://forum.xda-developers.com/showthread.php?t=1495763

Vaiden
źródło
3
średnie obciążenie nigdy nie jest w%
Sparr
3

Jak wskazywały inne odpowiedzi, w systemach UNIX liczby reprezentują średnie obciążenie procesora w okresach 1/5/15 minut. Ale w Linuksie (iw konsekwencji Androidzie) reprezentuje coś innego.

Po aktualizacji jądra z 1993 roku ( bardzo dogłębny artykuł na ten temat ), w Linuksie średnie wartości obciążenia nie reprezentują już ściśle procesoraobciążenie: ponieważ obliczenia uwzględniają nie tylko procesy związane z procesorem, ale także procesy w nieprzerywalnym stanie oczekiwania - pierwotnym celem było uwzględnienie procesów związanych z we / wy w ten sposób, aby przedstawić więcej "obciążenia systemu" niż tylko obciążenie procesora . Problem polega na tym, że od 1993 roku wzrosło użycie stanu nieprzerywalności w jądrze Linuksa i nie jest to już typowo związany z procesem I / O. Problem jest dodatkowo zaostrzony przez niektórych deweloperów Linuksa, którzy używają nieprzerywalnego czekania jako łatwego oczekiwania, aby uniknąć uwzględnienia sygnałów w swoich implementacjach. W rezultacie w Linuksie (i Androidzie) możemy zobaczyć wypaczone średnie wartości przy dużym obciążeniu, które nie reprezentują obiektywnie rzeczywistego obciążenia. Istnieją raporty użytkowników Androida o nieracjonalnie wysokich średnich obciążeniach kontrastujących z niskim wykorzystaniem procesora. Na przykład, mój stary telefon z Androidem (z 2 rdzeniami procesora) zwykle pokazywał średnie obciążenie ~ 12, gdy system i procesory były bezczynne. Dlatego średnie liczby obciążeń w systemie Linux (Android) nie okazują się wiarygodnym miernikiem wydajności.

Slider2k
źródło
2

Więcej informacji o „średnim obciążeniu” pokazującym obciążenie procesora przez 1 minutę, 5 minut i 15 minut

Linux, Mac i inne systemy typu Unix wyświetlają „średnie obciążenie”. Te liczby mówią o tym, jak zajęty jest procesor, dysk i inne zasoby twojego systemu. Na początku nie są oczywiste, ale łatwo się z nimi zapoznać.

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

Prawdopodobnie masz system z wieloma procesorami lub wielordzeniowym procesorem. Średnie wartości obciążenia działają nieco inaczej w takim systemie. Na przykład, jeśli masz średnie obciążenie 2 w systemie z jednym procesorem, oznacza to, że twój system był przeciążony o 100 procent - przez cały czas jeden proces korzystał z procesora, podczas gdy drugi czekał. W systemie z dwoma procesorami byłoby to pełne wykorzystanie - dwa różne procesy przez cały czas korzystały z dwóch różnych procesorów. W systemie z czterema procesorami oznaczałoby to połowę wykorzystania - dwa procesy korzystały z dwóch procesorów, podczas gdy dwa procesory były bezczynne.

Aby zrozumieć średnią liczbę obciążenia, musisz wiedzieć, ile procesorów ma twój system. Średnie obciążenie 6,03 wskazywałoby, że system z jednym procesorem był znacznie przeciążony, ale byłoby dobrze na komputerze z 8 procesorami.

więcej informacji: Link

j-shan huang
źródło