19 votes

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

Dans OS X Mavericks, vous pouvez surveiller la consommation d'énergie de différents processus dans le moniteur d'activité. Activity Monitor showing the Energy Impact columnsIci nous pouvons voir 'Impact énergétique' et 'Impact énergétique moyen' et que les valeurs peuvent dépasser 100.

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

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 CPU et la consommation d'énergie ?

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

2voto

Bill Mei Points 195

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-actually-measure/

Dans tous les cas, l'"impact énergétique" du moniteur d'activité était le même que celui de l'indicateur d'activité. top de la mesure POWER. Tout indique que les deux sont calculés de manière identique sur cette machine.

Depuis top est un logiciel libre, nous pouvons rechercher une formule/code réel pour le calcul de ce nombre, et l'article de blog le résume 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 @Ruskes le laisse entendre, le calcul est basé sur les réveils de votre processus mesurés au niveau de la milliseconde. L'article de blog le mentionne :

Le calcul de 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 nulle du CPU et 3 000 réveils par seconde aura un score POWER de 150 - il ne s'agit donc pas d'un pourcentage. En fait, POWER est une mesure sans unité parce qu'elle est une combinaison semi-arbitraire de deux mesures avec des unités incompatibles.

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

1voto

Rob W Points 2207

De nombreux aspects de l'utilisation du processeur ont une incidence sur la consommation d'énergie. Il ne s'agit pas seulement de savoir combien de CPU une application consomme, mais aussi à quelle fréquence et avec quelle souplesse. Ce dernier aspect peut avoir un effet beaucoup plus important.

Une application qui a besoin de se réveiller exactement toutes les 10 ms pour exécuter quelques lignes de code Obj-C simple peut avoir un impact énergétique d'un ordre de grandeur plus grand que la même application exécutant des milliers de lignes de code mais juste une fois par seconde et n'étant pas très particulier sur le moment exact dans cette seconde le calcul se produira.

Apple utilise probablement les compteurs de performance d'Intel et les comptabilise dans votre application. Vous obtiendrez probablement plus d'informations en consultant d'abord les manuels d'Intel pour comprendre les états de puissance et la gestion de l'énergie. Cela varie fortement d'une architecture à l'autre. Une application qui se comporte mal peut avoir un impact beaucoup plus important sur Haswell que sur une "vieille" machine Core 2.

L'utilisation d'autres ressources, telles que le système audio, les entrées/sorties de disque ou les périphériques USB, peut également être prise en compte. Une méthode de comptabilisation probable consisterait à attribuer à votre application toute l'énergie utilisée 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 à effectuer une sorte de calcul au prorata pour le matériel partagé.

1voto

Ruskes Points 44895

Tout commence par un contrôle et des mesures de précision à la milliseconde près.

Par exemple, Intel a créé un outil pour surveiller les paramètres des processeurs 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 de l'ordre des millisecondes et la puissance est exprimée en watts. Il mesure la puissance totale de l'unité centrale, tandis que le moniteur d'activité la décompose par application/processus.

Intel

Voici un artículo d'Apple sur la gestion/consommation de l'énergie qui explique un peu plus en détail comment l'énergie est gérée.

En résumé, l'utilisation de la mesure de la puissance en ms permet de mieux contrôler la consommation d'énergie globale.

Avant TC

before

En utilisant les informations ci-dessus sur chaque application et la consommation d'énergie cumulée qui en résulte, Apple a mis en œuvre les fonctions Timer Coalescing et App Nap pour gérer la consommation d'énergie, ce qui a donné lieu au tableau ci-dessous.

Après TC

after

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

Puisque l'unité centrale contrôle l'activité, y compris la gestion de la RAM et les lectures/écritures sur le disque, la carte réseau et d'autres activités, par exemple l'amélioration de la qualité de l'air. Gestion de la RAM réduit également la consommation d'énergie due à l'activité R/W fréquente du disque.

La gestion de l'énergie comporte de nombreux aspects, qui sont une combinaison de mesures très précises et de conceptions logicielles visant à réduire la consommation d'énergie.

En voici quelques exemples :

Fonction de sieste de l'application

Minuterie Fonction de coalescence PDF

Fonction de gestion de la RAM

0voto

M K Points 10691

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

  • Utilisation du CPU
  • Entrée/sortie de disque
  • Entrée/sortie réseau
  • Utilisation de périphériques (comme des haut-parleurs audio, par exemple)

Là encore, il n'y a pas de détails 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 quelques suppositions en nous basant sur le fait que chaque Mac (et aussi PC) est équipé de divers capteurs dans le système. Vous pouvez utiliser un outil comme Moniteur matériel pour voir quels capteurs votre Mac possède et ce qu'ils rapportent en temps réel.

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X