IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le langage C ne sera-t-il jamais battu en termes de rapidité d'exécution et de faible consommation d'énergie ?
Voici les résultats d'une étude sur 27 langages de programmation les plus populaires

Le , par Victor Alisson

331PARTAGES

29  0 
L’étude réalisée par des chercheurs portugais révèle que C se positionne comme le langage de programmation le plus performant en termes de temps d’exécution et de faible consommation d’énergie (du CPU et de la RAM). C’est le résultat issu du benchmark ainsi effectué se basant sur le Computer Language Benchmarks Game (CLBG) pour comparer les 27 langages les plus populaires auprès des développeurs. Le papier relatant cette étude a été publié pour la première fois en 2017 dans International Conference on Software Language Engineering (SLE) ; une mise à jour de cette analyse comparative a été effectuée pour l’année 2020, mais concernant uniquement les langages fonctionnels.

Pour revenir aux résultats de l’étude initialement réalisée (2017), C affiche les valeurs les plus faibles par rapport à celles des 26 autres langages considérés en ce qui concerne le temps d’exécution (2019.26 ms) et la consommation d’énergie (57.86 J) dans l’exécution des solutions relatives aux dix problèmes retenus dans l’initiative CLBG. En revanche, c’est Pascal qui affiche la consommation de mémoire la moins élevée (65.96 Mb). La normalisation des valeurs de ces trois variables (en divisant les valeurs associées à chaque langage par ces valeurs minimales) a permis de dresser le tableau ci-après, les valeurs étant rangées de manière croissante :


Tableau des valeurs normalisées de l’énergie consommée, du temps d’exécution, et de la mémoire occupée pour chaque langage

L’on constate que C figure tout de même en troisième place en matière de consommation de mémoire, derrière Pascal et Go. Sur ce point, la différence entre C et Pascal est de l’ordre de 11.21 Mb, c’est-à-dire que le premier est 1.17 fois plus consommateur de mémoire que le second.

La mise à jour 2020 (voir tableau suivant), quant à elle, considère uniquement dix langages fonctionnels, dont le nouveau venu : Julia, un langage de programmation de haut niveau créé en 2009 et publié au grand public en 2012. Dorénavant, Julia aurait gagné un certain succès auprès de la communauté scientifique en 2018, justifiant alors son intégration dans l’échantillon du benchmark. En fait, Julia vient se placer juste derrière Rust.


Tableau des valeurs normalisées pour les langages fonctionnels

Il faut tout de même dire que les rangs présentés dans ce tableau de la mise à jour 2020 n’ont pas beaucoup changé par rapport à ceux de l’étude de 2017. Ainsi, Rust tient toujours la première place du classement dans cette catégorie de langages (fonctionnels). L’on remarque tout simplement la remontée de Lisp en termes de performance énergétique et la descente de Haskell en ce qui concerne la rapidité d’exécution.

Certes, dans l’étude de 2017, Rust suit de près le langage C avec des différences de l’ordre de 80.77 ms en temps d’exécution et de 1.74 J en énergie consommée (ce qui peut être considéré comme faible comparé aux valeurs associées aux autres langages de programmation en bas de classement). L’on constate ensuite que la nouvelle version de Rust consomme moins d’énergie et s’exécute plus rapidement par rapport à celle qui est prise en compte dans l’étude de 2017.

Toutefois, les différences ne sont pas encore suffisantes pour dépasser C dans le classement, car le ratio entre l’énergie consommée et le temps d’exécution (l’équivalent de la puissance exprimée en kW) pour Rust reste inchangé (0.039). De plus, ce dernier devient plus vorace dans la consommation de mémoire. En tout cas, la performance de la nouvelle version de Rust ne dépasse pas encore celle de C en valeur absolue (pour les trois variables étudiées).

En somme, le langage C reste indétrônable, et l’on se demande jusqu’à quand il préservera cette position. Il convient toutefois de noter que cela ne permet pas de conclure qu’il y a une relation fonctionnelle entre les trois variables de l’étude (énergie consommée, temps d’exécution, mémoire consommée).

Sources : Software Language Engineering (SLE), GitHub (Energy Languages)

Et vous ?

Quelle signification ont ces chiffres pour vous ?

Quelle place accordez-vous à C dans vos pratiques ?

Voir aussi :

Programmation : une étude révèle les langages les plus voraces en énergie : Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts

Le langage de programmation Julia gagne de plus en plus en popularité au sein de la communauté scientifique depuis janvier 2018

Pourquoi le langage C++ demeure incontournable 35 ans après sa sortie ?

C redevient le langage le plus utilisé devant Java et C++ ?

Quel avenir pour le langage C ? Un développeur expérimenté fait ses adieux au langage et livre ses inquiétudes quant à son avenir

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 23/02/2022 à 7:42
Citation Envoyé par zecreator Voir le message
A la finalité qu'est-ce qui fait un bon développement ? Le langage ou le développeur ?

On peut avoir le langage le plus performant et eco-responsable du Monde, si tu codes comme un barbare, ça s'annule.
Alors peut-être qu'au lieu de nous inventer des langages plus relou chaque année, on devrait commencer par prendre le temps de bien former les développeurs en école.
A peut près tous les gros (Microsoft, Oracle, Mozilla, Apple, Google, ...) qui ont fait la mesure sur leurs applications C++ sont arrivés au même résultat : plus des 2/3 des failles de sécurité critiques sur ces applications sont causées par des erreurs qui sont impossible en Rust "safe". Pourtant elles ne sont pas codées par des charlots ni des débutants et ils ont une vraie politique de revue et d'analyse de sécurité.

Mais un développeur reste un humain faillible, sur une quantité de code significative et complexe, même les meilleurs finissent fatalement par laisser passer des erreurs.
Avoir des développeurs compétents et bien formés, c'est bien mais pas suffisant. Avoir un bon outil qui empêche de faire certaines erreur, c'est aussi une bonne chose. Les deux ne sont pas du tout exclusif.
18  0 
Avatar de bizulk
Membre confirmé https://www.developpez.com
Le 01/12/2021 à 10:48
"De la même façon, l'assembleur produira un binaire généralement plus compact et rapide que le C."

Je t'invite à tenter de concurrencer un compilateur C avec ton source en langage d'assemblage.
15  1 
Avatar de walfrat
Membre émérite https://www.developpez.com
Le 01/12/2021 à 9:21
Combien ça représenterais d'énergie vraiment économisée ?

Combien ça pèserai face au flx stream 4k voir 8k qui saturent nos réseaux ?
14  1 
Avatar de
https://www.developpez.com
Le 01/12/2021 à 8:32
Il est clair que les codes compilés statiquement apportent un gros plus en terme d'usage CPU et d'empreinte mémoire par rapport aux langages interprétés ou compilés à la volée.

Mais il est fort illusoire de croire que les devs JS migrent massivement vers Rust. Et JS est une catastrophe à tout point de vue, pas qu'environnementale.
18  6 
Avatar de
https://www.developpez.com
Le 06/10/2022 à 18:24
Python reste bien plus performant énergétiquement parlant qu'un fichier Excel bourré de macros et de formules circulaires, puisque c'est a cette catégorie d'utilisateurs que ce langage s'adresse.

Ajouté à cela, la plupart des bibliothèques du langage sont des bindings vers des briques codées en C/C++.
14  2 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 06/10/2022 à 18:43
Comme expliqué, par d'autres, Python est censé être un langage de script qui n'est pas fait pour être utilisé directement pour de la performance brute. S'il est utilisé judicieusement dans son domaine, ça n'est pas un problème.

Malheureusement c'est devenu un langage généraliste très utilisé dans la data science et l'IA et souvent par des non-informaticiens pas toujours très au courant des problématiques de performance. Du coup c'est une vraie problématique sur laquelle il faut informer, d'autant que de nos jour où avec le Cloud c'est assez tentant de simplement augmenter la puissance de calcul pour compenser un manque de performances.
14  2 
Avatar de esperanto
Membre émérite https://www.developpez.com
Le 22/02/2022 à 15:14
Donc, l'écologie aujourd'hui, c'est utiliser son pc puissant comme un simple terminal pour se connecter à une machine Azure, avec toute la lourdeur de l'interface Windows 10, lancer un IDE écrit en C# genre Visual Studio... mais programmer en C parce qu'il consomme 3 pour cent de moins que Rust, c'est bien ça?
9  0 
Avatar de rawsrc
Expert éminent sénior https://www.developpez.com
Le 12/03/2020 à 14:41
en tout cas, je suis sacrément impressionné par Rust.
Sur la programmation système et autres logiciels bas niveau, c'est carrément bluffant.

Je vais sortir ma boule de cristal et comme plusieurs personnes autour de moi, je prédis un avenir de dingue à ce langage.

À titre perso, je suis en train de le découvrir. Comme disent les jeunes : c'est d'la balle
8  0 
Avatar de smarties
Membre expert https://www.developpez.com
Le 06/10/2022 à 19:28
Avant d'accuser Python, il faudrait agir en amont :
- garder le plus longtemps ses ressources informatique et ne pas renouveler tant que ça ne tombe pas en panne (et on peut généralement réparer)
- mutualiser les ressources, tous les serveurs ne demandent pas 100% de puissance ou de RAM tout le temps !

Python est certes pas très rapide mais il est adossé à plusieurs bibliothèques natives aussi ! Donc quand le programme Python ne fait pas de calcul, il ne doit pas avoir une forte emprunte énergétique.
Dans le milieu scientifique, quelle est l'emprunte de Matlab et de Scilab ?
8  0 
Avatar de
https://www.developpez.com
Le 01/12/2021 à 10:53
Citation Envoyé par vanquish Voir le message
De la même façon, l'assembleur produira un binaire généralement plus compact et rapide que le C.
C'était peut-être vrai aux débuts de l'informatique. Mais avec les processeurs RISC et les architectures matérielles de plus en plus complexes, un compilateur sortira généralement du bytecode mieux optimisé que ce qu'aurait fait un humain en assembleur.
8  1