medindo o uso da CPU em dispositivos móveis

se você sempre quis medir o uso da CPU de um aplicativo ou jogo móvel e está preso, continue lendo para descobrir como isso pode ser alcançado.

o objetivo fundamental de qualquer aplicativo ou jogo é fornecer uma ótima experiência ao usuário. Para jogos, quadros por segundo é uma boa medida disso. Quando seu jogo não é capaz de fornecer uma boa experiência, você está naturalmente curioso sobre o uso de recursos em seu sistema. Pode ser que o jogo seja limitado pela largura de banda da CPU/ GPU ou da memória. Essas três áreas fundamentais são a primeira parada ao procurar identificar problemas de desempenho. Vamos ver como medir o uso da CPU em dispositivos Android e iOS.

definições

o que é carga da CPU?
Antes de podermos discutir métodos de medição do uso da CPU, é importante saber o que queremos dizer com a definição de carga da CPU. A carga da CPU mede a quantidade de trabalho realizado por uma CPU entre dois intervalos de amostragem. Os dispositivos modernos possuem CPUs multi-core que podem operar em diferentes frequências, dependendo da necessidade computacional do software usando a CPU. Como resultado, uma CPU totalmente carregada em uma frequência mais baixa ainda pode aceitar mais tarefas do sistema operacional se a frequência for aumentada.

uma observação importante a ser feita é o fato de que a carga da CPU depende do ponto de operação da CPU. Uma CPU 100% carregada a 500 Mhz será carregada apenas 50% se a frequência for aumentada para 1 GHz. Portanto, é necessário normalizar a carga da CPU até a frequência máxima de operação da CPU.

a carga da CPU pode ser obtida para Android e iOS de várias maneiras. A carga da CPU pode ser superior a 100%. Por exemplo, em um dispositivo iOS com 4 núcleos, a carga da CPU pode ir até 400% (100% de carga para cada núcleo da CPU).

o que é o uso normalizado da CPU?
quando a métrica de carga da CPU, conforme mencionado acima, é recalculada usando o ponto máximo de operação de cada núcleo da CPU, obtemos o uso normalizado da CPU. Eu sei que isso é um pouco complexo, então eu tenho um exemplo que explica este abaixo,

Vamos considere o cenário seguinte em um dispositivo que tem um CPU Quad-Core

  • Carga de CPU por causa do app – 50%
  • Número de núcleos que estão on – line 2 4
  • Máximo ponto de operação dos Núcleos de CPU – 1 GHz
  • pontos de operação dos dois núcleos que foram sobre – 500 MHz

normalizada e o Uso da CPU é calculado da seguinte forma,

  • Máximo de Ciclos de CPU Disponíveis – 4 * 1 GHz 4 GHz
  • Ciclos de CPU Disponíveis quando o aplicativo estava rodando a 500 Mhz * 2 = 1 GHz
  • Porcentagem do Total de Ciclos de CPU Disponíveis durante a amostragem – 1Ghz/4Ghz = 25% ou 0,25
  • Normalizado Uso da CPU– 50% * (0.25) = 12.5%

Quando você usar qualquer ferramenta de análise, é sempre útil fazer esta pergunta. Estou medindo o uso normalizado da CPU? É importante porque quando o uso da CPU é normalizado, ele pode ser comparado em dois dispositivos. A carga da CPU não se presta a comparações fáceis.

Agora que temos entendido as definições de Carga da CPU, vamos olhar para algumas das diferentes maneiras em que podemos medir isso no Android e iOS

Android
Como um desenvolvedor, há muitas maneiras pelas quais você pode medir o Uso da CPU no Android para o seu aplicativo ou jogo.

comando” Top ”
a maneira mais fácil de controlar rapidamente o uso da CPU de seus aplicativos é usar o comando “top”. O Android é baseado no Linux, ele vem com algumas das guloseimas da linha de comando também disponíveis no Linux.

Se você tem ADB acesso ao dispositivo, você poderá executar um comando como o seguinte para olhar para Uso de CPU,

O comando ADB shell top -5 m-d 1 produz um resultado como abaixo:

ABD Shell - tela

Acima, você pode ver que o pacote com.kiloo.subwa + consumiu 142% da CPU. Vale a pena notar novamente que esta é a carga da CPU e não é normalizada. No entanto, você ainda pode usar esse número no mesmo dispositivo para entender o uso da CPU. Este método também é útil para obter o uso da CPU em qualquer aplicativo em execução no dispositivo.

Android Profiler
se você tiver acesso ao código-fonte do aplicativo, poderá usar o Android Studio profiler para obter métricas detalhadas de uso da CPU. Você pode seguir a documentação oficial do android aqui para usar o perfilador de CPU no Android Studio.

ferramentas do GameBench
as ferramentas do GameBench fornecem a maneira mais fácil possível de recuperar o uso normalizado da CPU em um dispositivo Android para qualquer aplicativo ou jogo, mesmo que você não seja o desenvolvedor. Além do uso da CPU, as ferramentas também relatam estados do núcleo da CPU (se um núcleo da CPU estava online) e também suas frequências. Por exemplo, um exemplo de gráfico de CPU de Núcleo de Frequências parece abaixo,

O gráfico acima mostra um chipset móvel com um 8-Core CPU e com um piscar de olhos você pode ver que a Frequência da CPU foi clock para os primeiros 25 segundos e, em seguida, o sistema operacional Android decidiu relógio todos os núcleos para baixas freqüências. Nesse caso, o aplicativo perfilado estava carregando recursos do disco e, como resultado, teve que operar todos os núcleos em uma frequência mais alta por 25 segundos. Se você gostaria de experimentar o uso da CPU para o seu dispositivo móvel, Inscreva-se para um teste do GameBench Pro abaixo e tenha uma rápida chance.

entre em contato

iOS
se você é um desenvolvedor iOS, a maneira mais fácil de medir o uso da CPU é usando o conjunto de ferramentas Xcode.

temos encontrado o seguinte Apple ferramentas para ser particularmente úteis:

  1. Xcode de Depuração Medidores
  2. Instrumentos
    1. Tempo Profiler
    2. Monitor de Atividade

Xcode de Depuração Medidores
Se você tem acesso ao código-fonte de seu aplicativo para iOS, em seguida, a Depuração instrumentos são uma maneira rápida e fácil para obter o consumo de recursos do seu aplicativo. Por favor, descubra mais detalhes sobre como usar os medidores de depuração aqui. Tudo que você precisa fazer é iniciar o aplicativo no dispositivo conectado para obter informações muito úteis sobre usos de recursos. Observe que apenas a carga da CPU é relatada no iOS (não normalizada).

Instrumentos
às vezes, você precisa acessar informações de perfil de CPU mais detalhadas e é aqui que os instrumentos podem ajudar. Os instrumentos têm alguns instrumentos diferentes que podem ajudar a medir o desempenho do seu aplicativo.

Time Profiler
o time profiler instrument pode realizar amostragem de baixa sobrecarga e baseada no tempo de processos em execução nas CPUs do sistema. Existem algumas visões diferentes neste instrumento que podem ser usadas. A visualização de uso da estratégia da CPU pode ser usada para comparar o uso do núcleo em determinados períodos de tempo. Você pode visualizar a carga de trabalho em cada núcleo do dispositivo e detectar qualquer comportamento inesperado. A visão de estratégia de threads pode ser usada para examinar o uso de threads pelo seu aplicativo ao executar o trabalho. Vale a pena notar que o código-fonte é necessário para entender os gargalos.

Activity Monitor
o activity monitor pode fornecer um bom indicador de saúde do aplicativo que está sendo perfilado. Este instrumento pode mostrar o uso de CPU e memória de todos os aplicativos em execução no dispositivo. Isso é útil se você gostaria de ter um teste de longa duração e medir os parâmetros de desempenho para o aplicativo/jogo.

Ferramentas GameBench
nossas ferramentas permitem medir o uso da CPU para o seu aplicativo, mesmo que você não tenha acesso ao código-fonte. Isso é especialmente útil se você quiser criar um perfil de um candidato de lançamento sem nenhuma informação de depuração. Além disso, nossas ferramentas permitem medir o uso da CPU a partir de um PC com windows, o que pode ser muito útil, pois as formas mencionadas acima de usar o Xcode e os Instruments funcionam apenas em um Mac que executa o OSX.

Gráfico de Frequência do núcleo

um ponto importante a ser observado aqui é que o uso da CPU relatado pelo GameBench varia com base no número de núcleos. Cada núcleo pode usar 100% e, portanto, para um sistema de seis núcleos, a carga máxima da CPU pode chegar a 600%.

um ponto importante a ser observado aqui é que o uso da CPU relatado pelo GameBench varia com base no número de núcleos. Cada núcleo pode usar 100% e, portanto, para um sistema de seis núcleos, a carga máxima da CPU pode chegar a 600%.

o que você deve procurar?

iOS
valores sustentados de alta carga da CPU precisam ser analisados com mais cuidado (entenda o que estava acontecendo na tela usando as capturas de tela para contexto), pois isso provavelmente levará ao aumento do consumo de bateria. Devido à maneira como o trabalho da CPU moderna, um aumento na carga da CPU geralmente acionará a CPU para entrar na próxima frequência de operação mais alta. A transição para o próximo ponto de operação deve resultar em um valor de carga da CPU mais baixo. Se um aplicativo estiver carregando consistentemente a CPU, o sistema operacional continuará a aumentar o ponto de operação até atingir o valor máximo. Este não é um comportamento desejável e deve ser investigado.

você também deve olhar para os valores de uso da CPU que são mais de 25% do máximo permitido. Portanto, em um sistema de 6 núcleos, qualquer carga sustentada de CPU superior a 150% geralmente aponta para um problema e você pode querer usar o time Profiler instrument para investigar isso com mais detalhes.

rajadas curtas de alta carga da CPU são boas.

Android
isso depende do número de núcleos no dispositivo usado para teste. Em um sistema quad-core, um valor maior que 25% significaria que um núcleo foi totalmente utilizado para o aplicativo e, como resultado, seria considerado alto uso da CPU, embora isso seja bom em rajadas curtas. O uso consistente da CPU > 25% precisa de uma investigação mais aprofundada.

todos os threads usados no aplicativo devem ser “nomeados” para usar as informações fornecidas da melhor maneira possível. É sempre uma boa ideia verificar se algum dos threads “leves” está consumindo inesperadamente mais ciclos de CPU

o que vem a seguir?

se você estiver interessado em aprender mais sobre as métricas coletadas pelas ferramentas do GameBench Pro, você pode encontrar várias postagens de blog sobre o assunto abaixo.

Blogs De Métricas De Desempenho

Leave a Reply