MESURER L’UTILISATION DU PROCESSEUR DANS LES APPAREILS MOBILES

Si vous avez déjà voulu mesurer l’utilisation du PROCESSEUR d’une application ou d’un jeu mobile et que vous êtes bloqué, lisez la suite pour savoir comment cela peut être réalisé.

L’objectif fondamental de toute application ou jeu est de fournir une expérience exceptionnelle à l’utilisateur. Pour les jeux, les images par seconde en sont une bonne mesure. Lorsque votre jeu n’est pas en mesure de fournir une bonne expérience, vous êtes naturellement curieux de connaître l’utilisation des ressources de votre système. Il se peut que le jeu soit bloqué par la bande passante CPU / GPU ou mémoire. Ces trois domaines fondamentaux constituent le premier point d’arrêt lorsque l’on cherche à identifier les problèmes de performance. Voyons comment mesurer l’utilisation du PROCESSEUR sur les appareils Android et iOS.

Définitions

Qu’est-ce que la charge CPU?
Avant de pouvoir discuter des méthodes de mesure de l’utilisation du PROCESSEUR, il est important de savoir ce que nous entendons par la définition de la charge du processeur. La charge du PROCESSEUR mesure la quantité de travail effectuée par un processeur entre deux intervalles d’échantillonnage. Les appareils modernes ont des processeurs multicœurs qui peuvent fonctionner à différentes fréquences en fonction des besoins de calcul du logiciel utilisant le processeur. En conséquence, un processeur entièrement chargé à une fréquence inférieure peut toujours accepter plus de tâches du système d’exploitation si la fréquence est augmentée.

Une observation clé à faire est le fait que la charge du PROCESSEUR dépend du point de fonctionnement du processeur. Un processeur chargé à 100% à 500 Mhz ne le sera qu’à 50% si la fréquence est augmentée à 1 GHz. Il est donc nécessaire de normaliser la charge du processeur à la fréquence de fonctionnement maximale du processeur.

La charge du processeur peut être obtenue à la fois pour Android et iOS de différentes manières. La charge du processeur peut être supérieure à 100%. Par exemple, dans un appareil iOS avec 4 cœurs, la charge du processeur peut aller jusqu’à 400% (Charge de 100% pour chaque cœur de PROCESSEUR).

Qu’est-ce que l’utilisation du PROCESSEUR normalisée?
Lorsque la métrique de charge CPU mentionnée ci-dessus est recalculée en utilisant le point de fonctionnement maximal de chaque cœur de CPU, nous obtenons une utilisation du PROCESSEUR normalisée. Je sais que c’est un peu complexe, j’ai donc un exemple qui explique cela ci-dessous,

Considérons le scénario suivant sur un périphérique doté d’un processeur Quadricœur

  • Charge du processeur à cause de l’application – 50%
  • Nombre de cœurs en ligne – 2 sur 4
  • Point de fonctionnement maximal des cœurs du processeur – 1 GHz
  • Points de fonctionnement des deux cœurs allumés – 500 MHz

L’utilisation normalisée du PROCESSEUR est calculée comme suit,

  • Cycles CPU Maximum disponibles – 4 * 1 GHz – 4 GHz
  • Cycles CPU disponibles lorsque l’application fonctionnait – 500 Mhz * 2 = 1 GHz
  • Pourcentage des cycles CPU totaux disponibles pendant l’échantillonnage – 1 GHz / 4 GHz = 25% ou 0,25
  • Utilisation du PROCESSEUR normalisée – 50% * (0.25) = 12.5%

Lorsque vous utilisez un outil de profilage, il est toujours utile de poser cette question. Est-ce que je mesure l’Utilisation Normalisée du Processeur ? C’est important car lorsque l’utilisation du processeur est normalisée, elle peut être comparée sur deux appareils. La charge du processeur ne se prête pas à des comparaisons faciles.

Maintenant que nous avons compris les définitions de la charge du processeur, examinons certaines des différentes façons dont nous pouvons mesurer cela dans Android et iOS

Android
En tant que développeur, vous pouvez mesurer l’utilisation du processeur dans Android pour votre application ou votre jeu.

commande “Top”
Le moyen le plus simple de gérer rapidement l’utilisation du processeur de vos applications est d’utiliser la commande “top”. Android est basé sur Linux, il est livré avec certains des goodies de ligne de commande également disponibles sous Linux.

Si vous avez accès ADB au périphérique, vous pouvez exécuter une commande comme la suivante pour examiner l’utilisation du processeur,

La commande ADB shell top-m 5-d 1 produit un résultat comme ci-dessous:

 ABD Shell-screen

Ci-dessus, vous pouvez voir que le paquet com.kilo.subwa+ a consommé 142% du processeur. Il convient de noter à nouveau qu’il s’agit d’une charge CPU et qu’elle n’est pas normalisée. Néanmoins, vous pouvez toujours utiliser ce numéro sur le même appareil pour comprendre l’utilisation du processeur. Cette méthode est également utile pour obtenir l’utilisation du PROCESSEUR sur toute application exécutée sur l’appareil.

Profileur Android
Si vous avez accès au code source de l’application, vous pouvez utiliser le profileur Android Studio pour obtenir des mesures détaillées de l’utilisation du processeur. Vous pouvez suivre la documentation officielle d’Android ici pour utiliser le profileur de CPU dans Android Studio.

Outils GameBench
Les outils GameBench offrent le moyen le plus simple possible de récupérer l’utilisation normalisée du processeur sur un appareil Android pour n’importe quelle application ou jeu, même si vous n’êtes pas le développeur. En plus de l’utilisation du processeur, les outils rapportent également les États du cœur du PROCESSEUR (si un cœur de PROCESSEUR était en ligne) et leurs fréquences. Par exemple, un exemple de graphique pour les fréquences du cœur du PROCESSEUR ressemble à ci-dessous,

Le graphique ci-dessus montre un chipset mobile avec un processeur à 8 cœurs et d’un coup d’œil, vous pouvez voir que la fréquence du PROCESSEUR a été cadencée pendant les 25 premières secondes environ, puis le système d’exploitation Android a décidé d’horloge tous les cœurs à des fréquences plus basses. Dans ce cas, l’application profilée chargeait des ressources à partir du disque et devait donc faire fonctionner tous les cœurs à une fréquence plus élevée pendant 25 secondes. Si vous souhaitez tester l’utilisation du processeur pour votre appareil mobile, inscrivez-vous à un essai de GameBench Pro ci-dessous et allez-y rapidement.

Contactez

iOS
Si vous êtes un développeur iOS, le moyen le plus simple de mesurer l’utilisation du processeur est d’utiliser le jeu d’outils Xcode.

Nous avons trouvé les outils Apple suivants particulièrement utiles:

  1. Jauges de débogage Xcode
  2. Instruments
    1. Profileur de temps
    2. Moniteur d’activité

Jauges de débogage Xcode
Si vous avez accès au code source de votre application iOS, les jauges de débogage sont un moyen rapide et facile d’obtenir la consommation de ressources de votre application. Veuillez trouver plus de détails sur l’utilisation des jauges de débogage ici. Il vous suffit de lancer l’application sur l’appareil connecté pour obtenir des informations très utiles sur les utilisations des ressources. Veuillez noter que seule la charge du processeur est signalée dans iOS (non normalisée).

Instruments
Parfois, vous avez besoin d’accéder à des informations de profilage CPU plus détaillées et c’est là que les instruments peuvent vous aider. Les instruments disposent de plusieurs instruments différents qui peuvent vous aider à mesurer les performances de votre application.

Profileur de temps
L’instrument de profileur de temps peut effectuer un échantillonnage basé sur le temps à faible surcharge des processus exécutés sur les processeurs du système. Il y a quelques points de vue différents dans cet instrument qui peuvent être utilisés. La vue d’utilisation de la stratégie CPU peut être utilisée pour comparer l’utilisation du cœur sur des périodes données. Vous pouvez afficher la charge de travail sur chaque cœur de l’appareil et repérer tout comportement inattendu. La vue stratégie des threads peut être utilisée pour examiner l’utilisation des threads par votre application lors de l’exécution d’un travail. Il convient de noter que le code source est nécessaire pour comprendre les goulots d’étranglement.

Moniteur d’activité
Le moniteur d’activité peut fournir un bon indicateur de santé de l’application en cours de profilage. Cet instrument peut afficher l’utilisation du processeur et de la mémoire de toutes les applications exécutées sur l’appareil. Ceci est utile si vous souhaitez effectuer un test de longue durée et mesurer les paramètres de performance de l’application / du jeu.

Outils GameBench
Nos outils vous permettent de mesurer l’utilisation du processeur de votre application même si vous n’avez pas accès au code source. Ceci est particulièrement utile si vous souhaitez profiler une release candidate sans aucune information de débogage. En outre, nos outils vous permettent de mesurer l’utilisation du processeur à partir d’un PC Windows, ce qui peut être très utile car les méthodes d’utilisation de Xcode et des instruments mentionnées ci-dessus ne fonctionnent que sur un Mac qui exécute OSX.

 Graphique des fréquences centrales

Un point important à noter ici est que l’utilisation du processeur rapportée par GameBench varie en fonction du nombre de cœurs. Chaque cœur est autorisé à utiliser 100% et donc pour un système à six cœurs, la charge maximale du processeur peut atteindre 600%.

Un point important à noter ici est que l’utilisation du processeur rapportée par GameBench varie en fonction du nombre de cœurs. Chaque cœur est autorisé à utiliser 100% et donc pour un système à six cœurs, la charge maximale du processeur peut atteindre 600%.

Que devez-vous rechercher?

iOS
Les valeurs soutenues de charge CPU élevée doivent être examinées plus attentivement (Comprenez ce qui se passait à l’écran en utilisant les captures d’écran pour le contexte) car cela entraînera probablement une augmentation de la décharge de la batterie. En raison du fonctionnement du processeur moderne, une augmentation de la charge du processeur déclenchera généralement le PROCESSEUR pour passer à la prochaine fréquence de fonctionnement plus élevée. La transition vers le point de fonctionnement suivant devrait entraîner une valeur de charge CPU inférieure. Si une application charge régulièrement le processeur, le système d’exploitation continue d’augmenter le point de fonctionnement jusqu’à ce qu’il atteigne la valeur maximale. Ce n’est pas un comportement souhaitable et devrait être étudié.

Vous devez également examiner les valeurs d’utilisation du PROCESSEUR supérieures à 25% du maximum autorisé. Ainsi, dans un système à 6 cœurs, toute charge CPU soutenue supérieure à 150% pointe généralement vers un problème et vous voudrez peut-être utiliser Time Profiler instrument pour étudier cela plus en détail.

De courtes rafales de charge CPU élevée conviennent.

Android
Cela dépend du nombre de cœurs de l’appareil utilisé pour les tests. Sur un système quadricœur, une valeur supérieure à 25% signifierait qu’un cœur a été entièrement utilisé pour l’application et, par conséquent, serait considéré comme une utilisation élevée du processeur, bien que cela soit très bien pour les courtes rafales. Une utilisation cohérente du processeur > 25% nécessite une enquête plus approfondie.

Tous les threads utilisés dans l’application doivent être “nommés” pour utiliser les informations fournies de la meilleure façon possible. C’est toujours une bonne idée de vérifier si l’un des threads “légers” consomme de manière inattendue plus de cycles CPU

Et ensuite ?

Si vous souhaitez en savoir plus sur les métriques collectées par GameBench Pro tools, vous trouverez plusieurs articles de blog sur le sujet ci-dessous.

Blogs sur les mesures de performance

Leave a Reply