Les caractéristiques d'utilisation de la mémoire d'une application sont un aspect fondamental de ses performances. Vous pouvez utiliser le Profiler système pour analyser ces caractéristiques en examinant les informations disponibles sur le compteur de GPU.
Appareils Adreno
Sur les appareils Adreno, commencez par mettre en évidence une période correspondant à une seule frame GPU, comme décrit dans Estimer les temps de traitement des frames CPU et GPU. Utilisez la technique décrite sur cette page, qui consiste à utiliser le compteur % d'utilisation du GPU ou un compteur similaire pour vos limites de temps de rendu. En effet, tous les compteurs utilisent la même technique de timing et permettent d'obtenir des estimations plus précises de l'utilisation de la mémoire (par rapport à l'utilisation des limites de temps de rendu dérivées des tranches de GPU dont les données sont collectées indépendamment des données de suivi des compteurs).

Totaux de lecture/écriture
Une fois que vous avez mis en surbrillance un seul frame dans le profileur, commencez par examiner les compteurs Total de lecture (octets/s) et Total d'écriture (octets/s). Ces compteurs donnent une bonne vue d'ensemble de la quantité de données qui traversent le bus mémoire au cours d'une seule frame. Faites de votre mieux pour minimiser la quantité de données que vous envoyez sur le bus, car la bande passante mémoire est une source importante de décharge de la batterie sur les appareils mobiles.

Vous pouvez également examiner les compteurs Vertex Memory Read (Bytes/Second) et Texture Memory Read (Bytes/Second) pour déterminer la partie de la bande passante utilisée pour les données de vertex et de texture.

Ce que vous considérez comme "bon" pour ces valeurs dépend du type de charges de travail observées dans votre application. Par exemple, les applications 2D peuvent utiliser des quantités relativement importantes (~2 Go/s et plus) de bande passante de lecture de la mémoire de texture, mais la bande passante de la mémoire de vertex peut être très faible (~50 Mo/s). Pour en savoir plus, consultez la documentation sur l'analyse de la bande passante de la mémoire des sommets et l'analyse de l'utilisation de la bande passante de la mémoire des textures.
Récupérer les stands
Examinez les compteurs % Décrochage de la récupération des sommets, % Décrochage de la récupération des textures et % Décrochage sur la mémoire système, car ils vous donneront des indications sur les performances globales de la mémoire de votre application. Si les valeurs sont supérieures à environ 5 %, cela suggère que votre application ne dispose pas les données en mémoire de manière efficace ou n'y accède pas de manière efficace pour profiter du cache. Pour savoir comment améliorer l'utilisation de la mémoire pour ces types d'éléments, consultez Analyser la bande passante de la mémoire des données de sommets et Analyser l'utilisation de la bande passante de la mémoire des données de texture.

Appareils Mali
Sur les appareils Mali, commencez par mettre en évidence une période correspondant à une seule frame GPU, comme décrit dans Estimer les temps de traitement des frames CPU et GPU. Utilisez la technique décrite sur cette page, qui consiste à utiliser le compteur % d'utilisation du GPU ou un compteur similaire pour vos limites de temps de rendu. En effet, tous les compteurs utilisent la même technique de timing et permettent d'obtenir des estimations plus précises de l'utilisation de la mémoire (par rapport à l'utilisation des limites de temps de rendu dérivées des tranches de GPU dont les données sont collectées indépendamment des données de suivi des compteurs).

Afficher les totaux externes
Après avoir mis en surbrillance un seul frame dans le Profileur système, commencez par examiner les compteurs Output External Read bytes et Output External Write bytes. Ces compteurs donnent une bonne idée globale de la quantité de données qui traversent le bus mémoire au cours d'une seule frame. Faites de votre mieux pour minimiser la quantité de données que vous envoyez sur le bus, car la bande passante mémoire est une source importante de décharge de la batterie sur les appareils mobiles.

Saisir les totaux internes
Des compteurs vous fournissent également des informations sur les caches eux-mêmes. Les compteurs qui vous intéressent sont "Cycles de blocage [lecture|écriture] internes d'entrée". Des valeurs élevées pour ces compteurs signifient que vous accédez au cache, mais que trop de requêtes de lecture sont effectuées. Par conséquent, le code du nuanceur est bloqué en attendant d'accéder à la mémoire.

Récupérer les stands
Les prochains compteurs à examiner sont Vertex Prefetcher Stall Cycles et Texture Fetch Stall, car ils vous donneront des indications sur les performances globales de la mémoire de votre application. Si vous constatez des valeurs supérieures à environ 5 %, cela signifie que vous ne disposez pas nos données en mémoire de manière efficace ou que vous n'y accédez pas de manière efficace pour profiter du cache. Consultez les articles sur l'analyse de la bande passante de la mémoire [Vertex|Texture] pour savoir comment améliorer l'utilisation de la mémoire pour ces types d'assets.
