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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Programmation : une étude révèle les langages les plus voraces en énergie


Sujet :

Débats sur le développement - Le Best Of

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Everything
    Inscrit en
    Décembre 2013
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Everything

    Informations forums :
    Inscription : Décembre 2013
    Messages : 362
    Par défaut
    Finalement je vois que je peux continuer à programmer en Pascal pour être à la pointe de la lute contre le changement climatique

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut
    C'est bien de tester Dart en interprété mais j'aurai aimé les perf en compilé....

    Parce que la différence, c'est le jour et la nuit.

  3. #3
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 104
    Par défaut
    Pour faire une mesure pertinente, il faudrait prendre des échantillons représentatifs de codes en situation réelle, et ça inclut des mauvais codes, mal optimisés.
    Je vais parler de JavaScript parce que c’est le langage que je connais le mieux. Il ne passe pas une journée sans que je voie, sur le forum JS de Developpez.com, du code posté présentant des mauvaises pratiques et des sous-optimisations.
    Pour moi, une étude plus pertinente serait « quelle est la proportion de mauvais code dans tel ou tel langage ? »
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Par défaut
    Cette étude est mal faite. J'ai sursauté sur la difference x8 entre Typescript et Javascript.

    Du coup je me suis permis de regarder le framework de test disponible ici. https://sites.google.com/view/energy...ency-languages

    J'ai pris l'étude, la première ligne du premier tableau (binarytree) et comparé les algos de deux langages que je connais: Ruby et Javascript:

    https://github.com/greensoftwarelab/...es.yarv-5.yarv
    https://github.com/greensoftwarelab/...narytrees.node

    (On passera sur les extension de fichier yolo yolo hein...).

    Long story short: La version de Ruby est une version parallelisable qui fork un process Unix, forcement moins efficace energetiquement et probablement moins éfficace en mono-coeur ou en "load" average.

    Pareillement, la différence entre typescript et javascript dans "fannkuch-redux" s'explique par le code source completement différent (algorithme different).

    Après, j'ai eu la flemme d'aller plus loin je dois dire. Bref, étude à jeter.

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut petite erreur ?
    je crois avoir relevé un leger decalage sur la date de parution qui aurait due être au 1/4/2019 ?

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2006
    Messages : 105
    Par défaut L'intêret ECOLOGIQUE
    Pour moi de telle étude est d'une importance majeure sur le plan ECOLOGIQUE surtout pour les fournisseurs qui ne prévoient pas un passage à l'électricité verte...

  7. #7
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Si les données sont fausses l'étude ne sert à rien.

    Et sinon l'électricité verte ça n'existe pas.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Le Python est un langage vorace car celui ci sert dans des appli utilisant des moteurs 3D .. rien de révolutionnaire . Idem le C++ peut servir pour du 2D et des minis jeux genre snake ou puissance 4.

  9. #9
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Bonjour,

    C'est intéressant comme étude, même si le résultat et la méthodologie laissent encore à désirer.

    Certains langages permettent d'économiser du temps de développement, donc si le développeur a besoin de moins d'efforts pour coder il consomme donc lui-même moins d'énergie. Ensuite, il y a tout ce qui est annexe, et consommateur également : compilation, installation de plateforme, conception du projet, utilisation des éditeurs de code, tests/débogage, phases d'évolution/correction/maintenance du projet, donc grosso-modo si nous voulions vraiment être plus précis il faudrait prendre tout cela en compte dans le bilan énergétique "global". Car le temps passé derrière l'ordinateur par chaque intervenant est également énergivore.

    Ensuite, séparer les langages par type de langage me semble incohérent : c'est plutôt par cas d'utilisation que cela convient. Par exemple, dans le cadre d'une application web, est-il plus énergivore de la développer en PHP ou en Java ? Dans certains cas, en PHP c'est mieux car suffisant pour les besoins de l'application, dans d'autres, Java est plus adapté car il est mieux outillé pour certaines situations. Mais les cas d'utilisations sont larges et différents et ne peuvent pas se résumer à un simple algorithme.

    Mais est-ce vraiment tant cela l'important ? La quantité d'énergie consommée est un facteur important lorsqu'il y a véritablement un choix entre plusieurs options, et que l'application va être souvent sollicitée. Mais en général, les choix s'orientent autour du projet lui-même, et donc peut-être que ce qui serait plus intéressant, serait de détecter tout d'abord à quel cas d'utilisation s'applique quel langage, puis quelles sont les pratiques de programmation énergivore PAR langage/plateforme, ainsi par exemple on pourrait transformer toutes les concaténations de String en Java en appels à une classe type StringBuilder serait une recommandation "verte", mais les exemples sont innombrables, utiliser les bons types de variables quand il faut, faire des boucles que quand c'est nécessaire (parfois préférer la récursion) etc :-)

    A+

  10. #10
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 196
    Par défaut
    Citation Envoyé par KiLVaiDeN Voir le message
    Mais en général, les choix s'orientent autour du projet lui-même, et donc peut-être que ce qui serait plus intéressant, serait de détecter tout d'abord à quel cas d'utilisation s'applique quel langage, puis quelles sont les pratiques de programmation énergivore PAR langage/plateforme, ainsi par exemple on pourrait transformer toutes les concaténations de String en Java en appels à une classe type StringBuilder serait une recommandation "verte", mais les exemples sont innombrables, utiliser les bons types de variables quand il faut, faire des boucles que quand c'est nécessaire (parfois préférer la récursion) etc :-)
    A+
    Souvent, dans les grosses sociétés, on va vers le langage que l'on utilise en standard même si ce n'est pas le plus efficace pour un projet... Peur de l'investissement nécessaire pour appréhender un nouvel écosystème... En plus, certains n'aiment pas sortir de leur zone de confort aussi... Du coup on utilise un bazooka pour tuer une mouche en ce disant que qui peut le plus peu le moins...

    Quand à choisir le bon type de variable, il y aurai beaucoup à dire là dessus... Même chose dans les bases de données quand on voit dans des progiciels que la quasi-totalité des colonnes sont définies en VARCHAR, y compris pour stocker des dates et des valeurs numériques...

    Le choix du bon langage (adapté au projet), une bonne réflexion préalable, des pratiques raisonnables, un peu d'optimisation, tout ça pourrait faire économiser à la fois l'énergie du développeur et celle consommé par la solution....

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 42
    Par défaut
    Citation Envoyé par tanaka59 Voir le message
    Le Python est un langage vorace car celui ci sert dans des appli utilisant des moteurs 3D .. rien de révolutionnaire . Idem le C++ peut servir pour du 2D et des minis jeux genre snake ou puissance 4.
    Les langages ont été testés sur des programmes identiques, même si on peut douter que le niveau d'optimisation de chaque implémentation, voire même l'algorithme, soit comparables.
    Pas sûr que Python soit destiné particulièrement pour de la 3D (certainement moins que C++ qui permet d'utiliser OpenGL ou DirectX et dans lequel sont codés la plupart des moteurs 3D, à l'exception notable d'Unity). C'est en plus justement sur ce type d'applications gourmandes qu'il faut s'orienter vers un langage efficient, tant en perfs qu'en économie d'énergie.

  12. #12
    Membre très actif Avatar de darklinux
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2005
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 570
    Par défaut
    Citation Envoyé par tanaka59 Voir le message
    Le Python est un langage vorace car celui ci sert dans des appli utilisant des moteurs 3D .. rien de révolutionnaire . Idem le C++ peut servir pour du 2D et des minis jeux genre snake ou puissance 4.
    Comment dire ça ... Les premiers Quake engine ont été écris avec du C++ , le C++ à été le Python des années 1990 . Je ne serais trop te conseiller de lire , de regarder des vidéos sur l ' histoire de l ' informatique

  13. #13
    Membre très actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Par défaut
    Bonjour,
    Etude intéressante, j'aurais aimé plus de détails.

    Par exemple selon le type d'utilisation (site web avec base de données, info indus, ...)
    Eh puis qu'on nous fournisse la version des langages/compilos

  14. #14
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 145
    Par défaut
    Le C++ 1.56 fois plus lent que le C!?
    C'est une blague?

  15. #15
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 498
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ParseCoder Voir le message
    Le C++ 1.56 fois plus lent que le C!?
    C'est une blague?
    J'allais poser la question...

  16. #16
    Membre très actif Avatar de vivid
    Profil pro
    Inscrit en
    Février 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 221
    Par défaut
    franchement perdre du temps pour ce genre de lapalissade c'est vraiment ne rien connaitre a la programmation...

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 966
    Par défaut
    Contrairement à d'autres je ne suis pas surpris des bons résultats de Java, son vrai problème est que le code Java est rarement optimisé pour la performance. En revanche je me demande quelle est la JVM utilisée pour les tests? J'avoue ne pas avoir le courage de lire les 267 pages du rapport.

    Edition : j'oubliais que de nos jours Open JDK et Hotspot sont quasi identiques.

  18. #18
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 715
    Par défaut Grep etc.
    Bonjour,

    J'aime bien la réflexion sur les traitements de chaînes par les expressions régulières qui seraient particulièrement efficaces dans certains langages interprétés. Quand on sait qu'ils s'appuient sur des fonctions écrites en C...

    Même si cela peut apparaître marginal, l'analyse ne travaille pas en coûts complets (charges de dévelopement, charges de maintenance, charge de portabilité, occupation mémoire des machines virtuelles et des interpréteurs, espaces de caches...). Par exemple, des charges humaines de réalisation multipliées par deux ont un impact direct sur la consommation d'énergie (transports, bureaux, poste de travail etc.) sans compter les délais de mise à disposition.

    Et je ne parle pas des charges induites coté utilisateur qui sont souvent très difficiles à cerner sans être négligeables pour autant. Par exemple au delà de 4s d'attente (les estimations varient entre 3s et 5s) l'attention de l'utilisateur n'est plus assurée, il y aura donc en sus un délai humain de remise en contexte.

    Salutations

  19. #19
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Par exemple, des charges humaines de réalisation multipliées par deux ont un impact direct sur la consommation d'énergie (transports, bureaux, poste de travail etc.) sans compter les délais de mise à disposition.
    En même temps, ça dépend totalement du programme.

    Si c'est un script qui tourne pendant 5 secondes 2 fois par an, alors oui, les charges humaines ont un très grand impact.

    Si c'est un OS comme Windows ou Linux, ou un outils de bureautique tel que Microsoft ou Open Office, alors que les développeur passe 100 fois moins ou plus de temps à les développer, c'est moins d'une goutte d'eau comparé à l'énergie consomme par la simple utilisation.

    C'est d'ailleurs la même chose pour le Hello World cité plus haut. Si c'est la popup de notification de réception d'un SMS sur Android, même si elle consomme 0,001 milliampère/heure, multiplié par les milliards de fois qu'elle est affichée à l'échelle mondiale dans une journée, il doit falloir pas loin d'une centrale à charbon entière pour la faire tourner.

    La consommation liée à Internet a explosé littéralement depuis que Facebook lit directement les flux vidéos et que presque tous les jeunes passent leur journée sur Snapchat. La consommation liée aux mails à côté, c'est de l'ordre du milliardième.

  20. #20
    Invité de passage
    Homme Profil pro
    Architecte de solutions d'automatisation
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de solutions d'automatisation
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Par défaut Optimisations maîtrisées ?
    Bonjour,

    Je suis curieux de lire les conclusions originales ainsi que la méthodologie complète car de mon constat, Perl (bien utilisé) atteint 99% des performances du C compilé et je ne conçois pas qu'il puisse être classé dernier.

    En général, Java est ultra lourd niveau CPU (à cause de la JVM) et le C++ est très proche du C quand bien implémenté.

    Cette "étude" me semble assez légère d'un point de vue rigueur dans la méthodologie.

    Encore faut-il maîtriser un langage avant de vouloir en mesurer l'efficacité...

    Bref.

Discussions similaires

  1. Réponses: 77
    Dernier message: 17/02/2025, 10h10
  2. Réponses: 11
    Dernier message: 27/03/2024, 09h39
  3. Réponses: 16
    Dernier message: 12/09/2022, 20h46
  4. IDC : une étude révèle une addiction des américains pour les smartphones
    Par Stéphane le calme dans le forum Actualités
    Réponses: 7
    Dernier message: 09/04/2013, 09h32
  5. Réponses: 0
    Dernier message: 30/07/2009, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo