Y a-t-il quelque chose qui peut être fait pour une seule application à usage général pour affecter la consommation d'énergie de l'appareil sur lequel il fonctionne?
Je ne sais pas comment les optimisations des applications individuelles peuvent affecter la consommation d'énergie d'une manière générale, quelqu'un peut-il expliquer si différentes approches d'écriture d'applications affectent la consommation d'énergie du périphérique sur lequel elles s'exécutent?
Autrement dit, un seul programme, qui fait exactement la même chose de manière fonctionnelle, écrit de différentes manières, affecte-t-il radicalement la consommation d'énergie d'un appareil en général, pas sur la façon dont différents programmes non liés peuvent affecter la consommation d'énergie d'un appareil.
la source
Réponses:
Les problèmes de consommation d'énergie sont souvent au détriment des performances, les deux doivent donc être équilibrés. Appliquez la comptabilité du coût du capital pour envisager un matériel plus efficace, et cela devient un compromis très complexe. (passez-vous simplement 100 heures pour économiser un milliwatt / heure, ou 10 $ pour une alimentation plus efficace dans les contrôleurs exécutant le logiciel). La seule fois où il est commercialement judicieux de se soucier de la consommation d'énergie (causée par un logiciel) est une batterie de serveurs de la taille de Google, des appareils alimentés par batterie et si le marketing souhaite cocher la case Tree Hugging Greenie.
C'est trop complexe pour le banaliser en disant "Rendez vos algorithmes plus efficaces" - ce n'est que la première étape. La courbe performance / puissance et notamment la "performance perçue" / courbe de puissance sont non linéaires. Cela dépend si vous avez le contrôle et à quel niveau via le système d'exploitation utilisé.
Au-delà de cela, la question aura des réponses différentes à chaque situation spécifique. Par exemple, j'ai déjà travaillé sur un système alimenté par batterie (cible 18 mois sur une pile 9 V) qui était plus efficace en termes de puissance et fonctionnait à une vitesse d'horloge maximale pendant une courte durée que de dormir, mais un autre micrologiciel fonctionnant de manière similaire valait mieux cocher sur une horloge lente. pendant une minute, puis dormez.
la source
La meilleure chose que vous puissiez faire est d'optimiser vos algorithmes et la logique métier de votre application.
Vous pouvez également adopter un processus de compilation particulier, de nombreux codeurs oublient simplement les fonctions en ligne et l'optimisation dans une phase de compilation, la plupart du temps cela vous donne un petit avantage en termes de performances et, par conséquent, en termes d'optimisation de la consommation d'énergie.
la source
La bonne réponse est ...
Concentrez-vous sur la création de valeur pour vos clients. Créez une solution propre, facile à comprendre et facile à entretenir.
Ensuite, si vous avez besoin de plus de "puissance", vous pouvez profiler votre application. Avec le profilage, vous identifierez les goulots d'étranglement qui, une fois modifiés, fourniront le plus grand avantage et augmenteront "l'efficacité".
la source
S'il est vrai qu'en termes de CPU, il n'y a pas grand-chose à faire, il y a souvent des fonctionnalités de l'appareil qui consomment de l'énergie lorsqu'il est utilisé. Sur un PC, la plupart du temps, personne ne s'en soucie, mais il est certainement vrai qu'une lecture de disque entraînera (en supposant des disques non SSD) une rotation du disque dur et un déplacement de la tête, ce qui consommera un peu d'énergie. Sur un PC, cela est trivial, mais sur un appareil mobile, cela peut être un problème très réel.
Sur un téléphone, l'exemple le plus évident est celui des communications. L'envoi d'un signal sans fil prend de l'énergie. Sur un PC, connecté à une alimentation de 500 WATT, c'est sans conséquence. Sur un téléphone, ce n'est pas le cas. Une application qui interroge constamment un serveur pour de grandes quantités de données consommera considérablement plus d'énergie qu'une application qui n'utilise aucun réseau.
C'est un problème très réel, il suffit de google pour "l'application Android a vidé ma batterie". Ici une des nombreuses pages expliquant aux développeurs comment réduire la consommation d'énergie.
En général, vous souhaitez optimiser les performances en général (c'est-à-dire rendre le CPU autant que possible) et également pour l'utilisation du réseau. Communiquez le moins possible avec des messages aussi petits que possible.
Comme d'autres l'ont dit, il s'agit d'une tâche après la fin de la majeure partie de votre code, lorsque vous avez identifié un problème et profilé la consommation d'énergie.
la source