2009-10-20 13 views
0

J'ai développé et testé un programme C sur mon PC et maintenant je veux donner une estimation de la consommation d'énergie nécessaire pour le programme pour faire une seule course. J'ai analysé le temps d'exécution de l'application et des appels de fonction inviduels dans l'application et je connais la taille du code dans les lignes d'assemblage, mais aussi dans les lignes C brutes.Estimation Consommation Basé sur Temps de marche Analyse/code Taille

Comment pourrais-je donner une estimation de la consommation d'énergie basée sur l'analyse de la performance et/taille du code? Je suppose qu'il est proportionnel au nombre de lignes qui utilisent le processeur pour les calculs ou l'accès à la mémoire, mais j'espérais obtenir une réponse plus précise.

Aussi, comment pourrais-je faire la différence entre la consommation d'énergie sur mon PC dire par rapport à un sur un dispositif de puce électronique?

+0

@ Mike - Je ne crois pas que quiconque puisse supprimer les commentaires sauf la personne qui l'a publié et les modérateurs. Aussi, pourquoi les non-mâles seraient-ils plus offensés par cette blague (qui, soit dit en passant, est aussi une réponse à l'une des questions «amusantes» qui se renouvelle parfois) que les mâles? –

+0

Le message dans son profil était l'une des réponses à la question «Quelle est la meilleure citation de programmation» sur SO. –

+0

Ces commentaires semblent plutôt hors contexte et non pertinents pour le sujet? Est-ce que quelqu'un a supprimé un commentaire au dessus du tien? –

Répondre

0

Il y a un document sur le site Web d'Intel qui donne average energy per instruction pour différents processeurs. Ils donnent 11 nJ par instruction pour Core Duo, par exemple. L'utilité que cela aura pour vous dépend de la façon dont votre code ressemble au benchmark SpecInt, je suppose.

1

Bonne chance. Ce que vous voulez faire est pratiquement impossible sur un PC de bureau. Le mieux que vous pourriez probablement faire serait de mesurer le tirage au sort du mur au ralenti, et lors de l'exécution de votre programme, avec le moins d'autres programmes possible en cours d'exécution en même temps. Moyenne des résultats sur 100 ou plus, et vous devriez avoir une valeur avec une précision de quelques pour cent (les avertissements statistiques standard s'appliquent).

Sur un dispositif de puce électronique, il devrait être plus facile de calculer la consommation d'énergie, car ils publient des valeurs de consommation d'énergie (moyenne) pour les différents modes, et le moment est déterministe. Malheureusement, il y a tellement de différences entre un processeur comme celui-ci et votre processeur de bureau (taille des mots, pipelining, problèmes multiples, processus multiples, etc.) qu'il n'y aura vraiment aucun moyen efficace de comparer les deux.

+0

Je sais que d'autres personnes effectuant la même tâche ont trouvé des formules d'approximation pour la consommation d'énergie en fonction du nombre de lignes de code assymblement exécutées. Je ne cherche rien de précis, juste une approximation générale de la puissance c. –