As características de uso da memória de um app são um aspecto fundamental do desempenho dele. Use o System Profiler para analisar essas características consultando as informações disponíveis do contador de GPU.
Dispositivos Adreno
Em dispositivos Adreno, comece destacando um período consistente com um único frame de GPU, conforme descrito em Estimar tempos de processamento de frames da CPU e da GPU. Use a técnica descrita nessa página envolvendo o uso do % de utilização da GPU ou de um contador semelhante para rastrear os limites de tempo para a renderização do frame. Como todos os contadores usam a mesma técnica de tempo, é possível fazer estimativas mais precisas da utilização da memória (em comparação com o uso dos limites de tempo para a renderização do frame derivados dos intervalos da GPU, cujos dados são coletados de forma independente dos dados de rastreamento do contador).
Totais de leitura/gravação
Depois de destacar um único frame no profiler, comece analisando os contadores Total de leitura (bytes/s) e Total de gravação (bytes/s). Esses contadores oferecem uma boa visão geral de quantos dados estão cruzando o barramento de memória ao longo de um único frame. Faça o possível para minimizar a quantidade de dados enviados pelo barramento, já que a largura de banda da memória é uma grande fonte de consumo elevado da bateria em dispositivos móveis.
Você também pode examinar os contadores Leitura de memória de vértice (bytes/segundo) e Leitura de memória de textura (bytes/segundo) para determinar a parte da largura de banda usada para dados de vértice e textura.
O que você considera "bom" para esses valores depende do tipo de carga de trabalho no app. Por exemplo, aplicativos 2D podem ter quantidades relativamente grandes (~2 GB/s ou mais) de largura de banda de leitura de memória de textura sendo usadas, mas a largura de banda de memória de vértice pode ser muito pequena (~50 MB/s). Para mais detalhes, consulte a documentação sobre Analisar a largura de banda da memória de vértices e Analisar o uso da largura de banda da memória de textura.
Buscar bancas
Analise os contadores % Parada de busca de vértices, % Parada de busca de textura e % Parada na memória do sistema, já que eles dão algumas dicas sobre o desempenho geral da memória do aplicativo. Se os valores forem maiores que aproximadamente 5%, isso sugere que o app não está organizando os dados na memória de maneira eficiente ou não está acessando os dados de maneira eficiente para aproveitar o cache. Confira Analisar a largura de banda da memória de vértice e Analisar o uso da largura de banda da memória de textura para detalhes sobre como melhorar o uso da memória para esses tipos de recursos.
Dispositivos Mali
Em dispositivos Mali, comece destacando um período consistente com um único frame da GPU, conforme descrito em Estimar tempos de processamento de frames da CPU e da GPU. Use a técnica descrita nessa página envolvendo o uso do % de utilização da GPU ou de um contador semelhante para rastrear os limites de tempo para a renderização do frame. Como todos os contadores usam a mesma técnica de tempo, é possível fazer estimativas mais precisas da utilização da memória (em comparação com o uso dos limites de tempo para a renderização do frame derivados dos intervalos da GPU, cujos dados são coletados de forma independente dos dados de rastreamento do contador).
Gerar totais externos
Depois de destacar um único frame no System Profiler, comece analisando os contadores Output External Read bytes e Output External Write bytes. Esses contadores oferecem uma boa visão geral de quantos dados estão cruzando o barramento de memória ao longo de um único frame. Faça o possível para minimizar a quantidade de dados enviados pelo barramento, já que a largura de banda da memória é uma grande fonte de consumo de bateria em dispositivos móveis.
Inserir totais internos
Também há contadores que fornecem informações sobre os próprios caches. Os contadores de interesse são "Ciclos de espera internos de entrada [leitura|gravação]". Valores mais altos significam que você está acessando o cache com sucesso, mas há muitas solicitações de leitura sendo feitas. Como resultado, o código do shader está aguardando o acesso à memória.
Buscar bancas
O próximo conjunto de contadores que você pode analisar são os ciclos de espera do Vertex Prefetcher e o espera de busca de textura, que dão algumas dicas sobre o desempenho geral da memória do aplicativo. Se você estiver vendo valores maiores que 5%, isso significa que não está organizando os dados na memória de maneira eficiente ou acessando os dados de maneira eficiente para aproveitar o cache. Confira os artigos "Analisar largura de banda de memória [Vertex|Texture]" para saber como melhorar o uso da memória para esses tipos de recursos.