Comment Apple calcule-t-il la consommation d'énergie d'un processus dans OS X Mavericks


15

Dans OS X Mavericks, vous pouvez surveiller la consommation d'énergie de différents processus dans Activity Monitor. Moniteur d'activité affichant les colonnes Impact énergétiqueIci, nous pouvons voir 'Energy Impact' et Avg Energy Impact 'et que les valeurs peuvent dépasser 100.

Il y aura également une icône de barre de menu qui répertorie les applications les plus consommatrices d'énergie en cours d'exécution actuellement.

Existe-t-il une documentation sur la façon dont Apple calcule la consommation d'énergie actuelle? Existe-t-il une correspondance entre l'utilisation du processeur et la consommation d'énergie?

J'espère qu'il y a des experts ici qui peuvent me donner un indice.

Réponses:


1

De nombreux aspects de l'utilisation du processeur affectent la consommation d'énergie. Ce n'est pas seulement la quantité de CPU consommée par une application, mais aussi la fréquence et la flexibilité de cette application. Ce dernier peut avoir un effet beaucoup plus important.

Une application qui doit se réveiller exactement toutes les 10 ms pour exécuter seulement quelques lignes de code Obj-C simple peut avoir un impact énergétique plus important que la même application exécutant des milliers de lignes de code mais juste une fois par seconde et pas très en particulier sur le moment exact où, dans cette seconde, le calcul aura lieu.

Apple utilise probablement les compteurs de performances d'Intel et les comptabilise dans votre application. Vous obtiendriez probablement plus d'informations en suivant d'abord les manuels d'Intel pour comprendre les états d'alimentation et la gestion de l'énergie. Cela variera fortement entre les architectures. Une application qui se comporte mal peut avoir un impact beaucoup plus important sur Haswell que sur une "ancienne" machine Core 2.

L'utilisation d'autres ressources, telles que le système audio, les E / S disque ou l'utilisation de périphériques USB peut également être prise en compte. Une méthode de comptabilité probable attribuerait à votre application toute la consommation d'énergie requise par les ressources que votre application utilise exclusivement (par exemple, un périphérique USB personnalisé, l'accès à un système audio autrement éteint), et effectuez une sorte de calcul au prorata pour le matériel partagé.


1

Tout commence par une surveillance et des mesures de précision jusqu'à des millisecondes.

À titre d'exemple, Intel a créé un outil pour surveiller les paramètres du processeur Intel.

Il affiche la puissance, la fréquence et la température.

La consommation d'énergie et la température sont des produits de la fréquence (la vitesse) ou de la quantité de données traitées.

Le taux d'échantillonnage est en millisecondes et la puissance est en watts, et il mesure la puissance totale du processeur tandis que le moniteur d'activité la décompose par application / processus.

Intel

Voici un article d'Apple sur la gestion / consommation d'énergie qui donne un peu plus de détails sur la gestion de l'énergie.

En résumé, en utilisant la mesure de puissance ms, on peut mieux contrôler la consommation d'énergie globale.

Avant TC

avant

En utilisant les informations ci-dessus sur chaque application et la consommation d'énergie cumulée qui en résulte, Apple a implémenté les fonctionnalités Tales Coalescing et App Nap pour gérer la consommation d'énergie, ce qui donne le graphique ci-dessous.

Après TC

après

Pour voir plus d'informations sur les graphiques ci-dessus, visitez cet article .

Étant donné que l'activité du contrôle du processeur, y compris la gestion de la RAM et la lecture / écriture du disque, la carte réseau et d'autres, par exemple, l'amélioration de la gestion de la RAM réduit également la consommation d'énergie qui se produit en fréquentant l'activité de R / W du disque.

Il existe de nombreux aspects de la gestion de l'énergie, et ils sont une combinaison de mesures très précises et de conceptions logicielles pour réduire la consommation d'énergie.

Quelques exemples sont:

Fonction App Nap

Fonction de coalescence temporisée PDF

Fonction de gestion de la RAM


1
@grgarside Les images semblent provenir des sites liés dans les réponses. Néanmoins, cela ne nuirait pas d'indiquer explicitement la source de chaque image.
nohillside

1
@ patrix- done, a montré les sources de tout :)
Ruskes

0

Il ne semble pas y avoir de documentation sur la façon dont la consommation d'énergie est calculée. L'utilisation du processeur à elle seule ne peut pas prédire de manière fiable la consommation d'énergie. Ainsi, les principaux facteurs considérés seraient (ceux-ci sont quelque peu complémentaires à ce que App Nap regarde et contrôle):

  • l'utilisation du processeur
  • Entrée / sortie disque
  • Entrée / sortie réseau
  • Utilisation périphérique (comme les haut-parleurs audio, par exemple)

Encore une fois, il n'y a aucun détail sur la façon dont chacun de ces facteurs est mesuré et sur les formules utilisées pour calculer la consommation d'énergie. Nous pouvons faire des suppositions éclairées par le fait que chaque Mac (et également PC) est équipé de divers capteurs au sein du système. Vous pouvez utiliser un outil comme Hardware Monitor pour voir quels capteurs votre Mac possède et ce qu'ils signalent en temps réel.

Les principaux capteurs liés à la consommation d'énergie qui sont disponibles (et qui le sont depuis plusieurs années) dans Hardware Monitor sont la tension du processeur, le courant du processeur et la puissance du processeur. Pour les autres éléments de la liste ci-dessus, il n'y a pas de capteurs matériels pour mesurer la consommation d'énergie. Apple doit donc utiliser des facteurs d'extrapolation spécifiques en fonction du modèle du Mac et du matériel sous-jacent.


0

Le numéro semble provenir du programme top. J'ai trouvé le billet de blog suivant qui examine ce calcul de manière beaucoup plus détaillée: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact -mesurer réellement /

Dans tous les cas, l '«impact énergétique» du moniteur d'activité était identique à topla mesure POWER. Tout indique que les deux sont calculés de manière identique sur cette machine.

Étant donné qu'il topest open-source, nous pouvons étudier une formule / un code réel pour la façon dont ce nombre est calculé, et le blog résume cela comme suit:

|elapsed_us| is the length of the sample period
|used_us| is the time this process was running during the sample period

%CPU = (used_us * 100.0) / elapsed_us

POWER = if is_a_kernel_process()
          0
        else
          ((used_us + IDLEW * 500) * 100.0) / elapsed_us

Comme l'indique @Ruskes, le calcul est basé sur les réveils de votre processus mesurés au niveau de la milliseconde. Le billet de blog mentionne que:

Le calcul POWER est une fonction de CPU et IDLEW. C'est fondamentalement la même chose que% CPU mais avec une «taxe» de 500 microsecondes pour chaque réveil et une exception pour les processus du noyau. La valeur de cette fonction peut facilement dépasser 100 - par exemple, un programme avec une utilisation zéro du processeur et 3 000 réveils par seconde aura un score POWER de 150 - ce n'est donc pas un pourcentage. En fait, POWER est une mesure sans unité car c'est une combinaison semi-arbitraire de deux mesures avec des unités incompatibles.

Donc, essentiellement, vous pouvez considérer le nombre comme une mesure des réveils du processeur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.