17 avril 2024 1107 mots, 5 min. de lecture Dernière mise à jour : 17 avril 2024

Frugalité énergétique des logiciels : une source de compétitivité

Par Pierre-Nicolas Schwab Docteur en marketing, directeur de IntoTheMinds
La frugalité énergétique est un concept qui s'applique aussi à l'informatique. Dans cet article je développe l'idée que le choix d'une solution logicielle en fonction de son langage de programmation peut apporter des gains de productivité et financiers.

La mode est au Cloud et en particulièrement au Cloud computing. Les entreprises de toutes tailles font désormais tourner leurs logiciels sur des infrastructures (AWS, Azure, Google Cloud) auxquelles elles louent des capacités de calcul. Sauf que toutes ces sociétés n’ont aucun intérêt financier à vous faire économiser du temps de calcul car elles y perdraient de l’argent. Dans cet article j’aborde le sujet de la frugalité énergétique des logiciels et vous explique pourquoi l’écoprogrammation est aussi bonne pour votre portefeuille.

Contactez le cabinet d’études IntoTheMinds

Si vous avez des logiciels qui tournent dans le Cloud, vous pourriez un jour vous retrouver avec une mauvaise surprise. Vous n’êtes en effet pas à l’abri d’une explosion de vos coûts à cause de l’utilisation, licite ou non, de CPU’s (voir vidéo ci-dessous).

Voilà pourquoi il faut s’intéresser aux langages de programmation utilisés car ils influencent la vitesse de traitement de vos opérations.

Le langage de programmation influence la consommation énergétique

En matière d’efficience énergétique des langages de programmation, une étude fait référence.
Sa méthodologie compare l’utilisation de la mémoire et la vitesse d’exécution de 10 langages de programmation (Perl, Python, Ruby, PHP, C, C++, Lua, tcl, javascript et Java). Cette approche fait sens pour comparer la consommation d’énergie, car une exécution plus rapide et une empreinte mémoire plus faible conduisent généralement à une réduction de la consommation électrique du CPU.

comparison of running time of script with different programming languages

Comparaison des différents langages de programmation sur la base de l’étude citée dans l’article.

Pour vous rendre compte des échelles de grandeur, je me suis basé sur l’étude pour calculer quelques ordres de grandeur.

Temps d’exécution

  • C est 100 fois plus rapide que Python
  • C++ est 6,7 fois plus rapide que Java
  • Perl est 10 fois plus rapide que Java

Cela vous donne une idée des langages à privilégier si vous voulez privilégier l’écoprogrammation (je ne sais pas si le terme existe mais il me semble tout à fait adéquat).

Utilisation de la mémoire

L’utilisation de la mémoire n’est pas un processus qui consomme directement de l’énergie. Par contre il peut intervenir à 2 niveaux en ce qui concerne l’impact sur l’environnement. D’abord, bien utiliser la mémoire vous évitera de devoir ajouter de la RAM à vos machines (ça coûte cher et la fabrication d’un composant électronique nécessite beaucoup d’eau). Ensuite, la mise en mémoire permet d’accélérer les calculs par rapport à la lecture sur un disque dur.

  • C utilise 1,5% de la mémoire consommée par Python.
  • C++ consomme 2% de la mémoire utilisée par Python.
  • Python et Perl utilise 3% de la mémoire qui est nécessaire à Java

C est le langage le plus efficient énergétiquement

Parmi les langages analysés, c’est C qui se hisse à la première place. Pourquoi ? Et bien parce que c’est un langage de bas niveau qui, lorsqu’il est maîtrisé et correctement mis en œuvre, permet un meilleur contrôle des ressources matérielles.
Cette efficacité se traduit par des vitesses d’exécution plus rapides et une utilisation minimale de la mémoire. C’est exactement ce vers quoi il faudrait tendre dans la situation actuelle. Sauf que rares sont les logiciels à être développés dans des langages de bas niveau aujourd’hui.


Il est opportun, dans certains cas, de faire tourner les opérations les plus gourmandes en ressources sur une infrastructure locale plutôt que sur le cloud.


Quelles conséquences pratiques dans la vie de l’entreprise ?

L’entreprise a tout intérêt à utiliser des logiciels bien programmés et peu gourmands en ressources. Elle gagnera tout d’abord en temps. Mais j’irais même plus loin en disant que dans la mesure du possible elles devraient faire ses calculs les plus gourmands « on premise » plutôt que sur le cloud.

Gain de temps

Parlons d’abord du gain de temps. Nous avons réalisé en 2023 un sondage auprès de 400 responsables IT dans des entreprises pratiquant la data science. Pour 47% des répondants, la vitesse de calcul était une de leurs priorités pour le déploiement de solutions futures dans leur entreprise.

survey IntoTheMinds on future of data solutions

IntoTheMinds a interrogé 400 responsables IT sur le modèle de paiement souhaité pour leur solution « data »

Si vous êtes un lecteur fidèle de ce blog, vous vous souvenez peut-être de mes benchmarks entre différentes solutions ETL. L’une d’entre elles, Anatella, se distinguait par ses performances très au-dessus du lot. Mes tests montraient des gains de performances qui pouvaient attendre x20. La raison est qu’Anatella a été programmé avec des langages de bas niveau (C, C++ mais aussi Assembleur). Ses concurrents utilisent des technologies basées notamment sur Java et n’arrivaient donc pas à suivre.
Je pense donc que tout responsable IT doit se renseigner sur les langages utilisés pour la programmation des solutions logicielles commerciales qu’il acquiert.

Consultez-nous pour vos études sur le marché de l’IT

Gain financier

Quel que soit le type de logiciel, je pense qu’il faut garder à l’esprit que les faire tourner dans le Cloud peut représenter un mauvais calcul financier. Puisque le business model des fournisseurs de Cloud est de vous vendre des minutes de computing, quel intérêt auraient-ils d’accélérer le traitement de vos opérations.

survey IntoTheMinds on preferred payment models by IT managers

IntoTheMinds a interrogé 400 responsables IT sur le modèle de paiement souhaité pour leur solutions « data ».

En matière de calcul parallélisé en particulier, la loi d’Amdahl démontre que le gain marginal de vitesse décroît avec le nombre de processeurs. Mobiliser toujours plus de processeurs (et dépenser plus d’argent donc) ne sera au final pas une solution financièrement intéressante pour vos opérations les plus lourdes.

C’est pour cela qu’il me semble opportun de réfléchir, dans certains cas, à faire tourner les opérations les plus gourmandes en ressources sur une infrastructure locale plutôt que sur le cloud. Non seulement vous n’aurez pas de facture récurrente de votre fournisseur de Cloud, mais en plus vous vous éviterez le stress de ne pas savoir ce que vous aurez à payer à la fin du mois. J’en parle d’autant mieux que j’ai déjà été confronté au problème pour un client.



Publié dans Data et IT, Stratégie.

Donnez votre avis

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *