Como ler os dados de uso da CPU de estoque


113

No Ice Cream Sandwich, uma opção nas Opções do desenvolvedor é "Mostrar uso da CPU", que adiciona uma sobreposição na tela (veja a imagem abaixo).

Minha pergunta é: como faço para ler os dados? Imaginei que os nomes dos pacotes são os processos atualmente ativos, mas o que significam as barras vermelhas e verdes atrás? Também quais são os 3 números no topo das embalagens?

insira a descrição da imagem aqui


1
Temos algo semelhante a isso para RAM?
Behnam de

2
Minhas 3 "médias de carga" são cerca de 9,0. As barras verdes e vermelhas são quase invisíveis, atingindo cerca de 5% da largura da tela em jogos graficamente intensos, após o que as "médias de carga" atingem cerca de 10,0. Meu telefone é um quadcore e a bateria dura muito. Eu acho que as respostas aqui estão incompletas.
João,

1
@Campiador Está com cerca de 1 ano de atraso, mas para a RAM você pode executar c: \> adb shell vmstat <ENTER> para examinar informações sobre a memória. CD em seu android-sdk-windows \ platform-tools \ para adb.
raddevus

Respostas:


77

Esta deve ser a média de carregamento do Unix. A Wikipedia tem um bom artigo sobre isso.

Os números mostram a carga média da CPU em diferentes intervalos de tempo. Da esquerda para a direita: último minuto / últimos cinco minutos / últimos quinze minutos


2
Do site do desenvolvedor: Mostrar uso da CPU Exibe medidores da CPU na parte superior da tela, mostrando quanto a CPU está sendo usada. A barra vermelha superior mostra o uso geral da CPU e a barra verde abaixo mostra o tempo da CPU gasto na composição da tela. Observação: você não pode desativar esse recurso depois de ativado, sem reiniciar o emulador. developer.android.com/tools/debugging/debugging-devtools.html
Rolf ツ

44
"Verde é o tempo no espaço do usuário, vermelho é o tempo no kernel, azul é o tempo de interrupção IO." - Dianne Hackborn groups.google.com/forum/?fromgroups=#!topic/android-platform/…
Bo.

1
Existe uma barra por núcleo? Vejo apenas 2 barras, mas tenho um dispositivo quadcore. Isso significa que não estou usando todos os meus núcleos?
Ken,

4
@Ken: As barras são a carga média de toda a CPU, não os núcleos. A barra superior mostra o uso da CPU do SO e de todos os programas e as outras barras mostram o uso da CPU do programa específico. Portanto, não se preocupe, o Android usa todos os núcleos.
nkr

1
Estou um pouco confuso. Dianne Hackborn diz: Verde = espaço do usuário, Vermelho = Kernel, Azul = interrupção, mas no site do desenvolvedor diz: vermelho = uso geral da CPU, Verde = composição da tela. Não soa exatamente igual, certo?
Tobias Reich


2

Como outras respostas apontaram, em sistemas UNIX os números representam médias de carga da CPU em períodos de 1/5/15 minutos. Mas no Linux (e consequentemente no Android), o que ele representa é algo diferente.

Depois de um patch de kernel que remonta a 1993 (um grande artigo aprofundado sobre o assunto ), no Linux os números médios de carga não representam mais estritamente a CPUcarga: como o cálculo leva em conta não apenas os processos vinculados à CPU, mas também os processos em estado de espera ininterrupto - o objetivo original era contabilizar os processos vinculados a I / O dessa forma, para representar mais uma "carga do sistema" do que apenas carga da CPU . O problema é que, desde 1993, o uso do estado ininterrupto cresceu no kernel do Linux e não representa mais um processo vinculado a E / S. O problema é ainda mais exacerbado por alguns desenvolvedores Linux que usam esperas ininterruptas como uma espera fácil para evitar sinais de acomodação em suas implementações. Como resultado, no Linux (e Android), podemos ver números médios de alta carga distorcidos que não representam objetivamente a carga real. Existem relatórios de usuários do Android sobre médias de carga excessivamente altas que contrastam com a baixa utilização da CPU. Por exemplo, meu antigo telefone Android (com 2 núcleos de CPU) normalmente mostrava carga média de ~ 12 quando o sistema e as CPUs estavam ociosos. Conseqüentemente, os números médios de carga no Linux (Android) não são uma métrica de desempenho confiável.


1

Mais sobre a "média de carga" mostrando a carga da CPU em 1 minuto, 5 minutos e 15 minutos

Linux, Mac e outros sistemas semelhantes ao Unix exibem números de “média de carga”. Esses números mostram o quão ocupados estão a CPU, o disco e outros recursos do seu sistema. Eles não são autoexplicativos no início, mas é fácil se familiarizar com eles.

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

Você provavelmente tem um sistema com várias CPUs ou uma CPU multi-core. Os números médios de carga funcionam de maneira um pouco diferente nesse sistema. Por exemplo, se você tem uma média de carga de 2 em um sistema de CPU única, isso significa que seu sistema foi sobrecarregado em 100 por cento - o período inteiro de tempo, um processo estava usando a CPU enquanto outro processo estava esperando. Em um sistema com duas CPUs, isso seria o uso completo - dois processos diferentes estavam usando duas CPUs diferentes o tempo todo. Em um sistema com quatro CPUs, isso seria metade do uso - dois processos estavam usando duas CPUs, enquanto duas CPUs estavam ociosas.

Para entender o número médio de carga, você precisa saber quantas CPUs seu sistema possui. Uma média de carga de 6,03 indicaria que um sistema com uma única CPU estava muito sobrecarregado, mas funcionaria em um computador com 8 CPUs.

mais informações: Link


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.