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

  1. #61
    Candidat au Club Avatar de vivid
    Profil pro
    Inscrit en
    février 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  2. #62
    Membre expérimenté
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    878
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 878
    Points : 1 458
    Points
    1 458
    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.

  3. #63
    Membre averti
    Profil pro
    Inscrit en
    avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2007
    Messages : 99
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par darklinux Voir le message
    C 'est quoi l ' intérêt ? j ' aurais approuvé cette étude fin des années 1990 début 2000 à l ' époque ou les CPU étaient monocœur et le SMP à la limite de ' expérimental , mais les CPU ont tellement évolué , comme les GPU . À la limite cela pourrait être valable sur smartphone ou tablette , mais qui programme la dessus en C ou Perl ???
    Bah disons qu'en faisant tourner des services implémentés en C plutôt qu'en Python (par exemple) on consommerait 76x moins d'énergie... sur une planète à ressources limitées, ça compte.

  4. #64
    Membre confirmé
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : novembre 2005
    Messages : 338
    Points : 502
    Points
    502
    Par défaut
    Certes , mais ni Apple et encore moins Google ne le permettent à cause de la sécurité , chose négligeable il y a trente ans , le C et Python ne permettent pas la sandbox , pas conçus pour . Oui nous sommes dans un environnement limité , mais c 'est pour cela qu ' il faut s ' appuyé sur les GPU .

  5. #65
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    3 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 3 892
    Points : 11 330
    Points
    11 330
    Par défaut
    Le C (même s'il a d'autre défauts) et le Python peuvent tout à fait être sandboxé. Même l'assembleur peut être sandboxé.
    Un sandboxing vraiment efficace c'est avant tout du ressort de l'OS pas vraiment du langage.

    D’ailleurs sous Android on peut tout a fait utiliser le C et le C++ même si ce n'est pas le langage le plus mis en avant par la documentation. Je connais moins iOS, mais d'après ce que j'ai lu c'est faisable même si c'est compliqué.

  6. #66
    Membre averti
    Profil pro
    Inscrit en
    avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2007
    Messages : 99
    Points : 300
    Points
    300
    Par défaut
    Je pense aussi aux serveurs webs. Je me demande quelle est la répartition des langages utilisés pour servir le contenu des sites représentant 90% du trafic mondial.

    Par ailleurs j'ai été chercher les sources de test. Le lien donné dans la publi (http://benchmarksgame.alioth.debian.org/) est mort.
    Il est maintenant ici https://salsa.debian.org/benchmarksg...benchmarksgame, enfin, presque, c'est le GIT du site web, mais le README donne les sources de test... dans des zip. Bah oui, utiliser GIT pour versionner le code, c'est le passé. D'ailleurs, le README pointe aussi sur un répo "archivé" du benchmarksgame. Comme quoi, les répos, c'est vraiment le passé.

    En regardant les sources je n'ai pas trouvé les règles de compilation et d'exécution pour les différents langages (le mainteneur dit ici https://salsa.debian.org/benchmarksg...game/issues/60 qu'il faut le faire soi-même). Du coup on ne sait pas exactement comment ça a été exécuté quand même.

  7. #67
    Membre régulier Avatar de openlowcode
    Homme Profil pro
    Développeur Java
    Inscrit en
    juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : juin 2019
    Messages : 36
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par mangobango Voir le message
    Bah disons qu'en faisant tourner des services implémentés en C plutôt qu'en Python (par exemple) on consommerait 76x moins d'énergie... sur une planète à ressources limitées, ça compte.
    Ou pour dire la même chose d'un point de vue plus égoiste, quand on héberge une application dans le cloud, une application C coûte 76 fois moins cher qu'une application Python. Ce ne sont pas que des scenarios théoriques, je crois que Facebook, à un moment de son histoire, s'est payé un refactoring majeur car le coût des serveurs explosait.

    Après, il faut faire un compromis entre la puissance machine, et le temps nécessaire à la programmation. Je crois, pour avoir pratiqué les deux languages, que je préfère java malgré l'overhead de performance pour la facilité de développement apportée.
    Open Lowcode Applications sur mesure, résultats rapides et à coûts réduits (repo Github)

  8. #68
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 : 3 736
    Points : 6 483
    Points
    6 483
    Billets dans le blog
    1
    Par défaut
    Je suis très surpris que personne ne s'offusque des résultats particulièrement décevants de C#... notamment comparé à Java.

    J'ai pas suivi l'évolution de Java ces dernières années, mais il y a quelques temps C# était meilleur sur les trois mesures : CPU, temps d'exécution et RAM.
    Java a probablement progressé (il ne pouvait de toute façon plus aller dans l'autre sens) mais de là à devenir deux fois meilleur que C# sur chacun des trois critères, je suis perplexe…


    Ne serait-ce que d'un point de vue architecture, Java est de facto plus lent que C#, dans la mesure où Java reste en bytecode tout le long de l'exécution, là où C# est compilé nativement au moment de l'exécution…


    Sur un for (int i = 1; i < 10; ++i) { write(i); } cette étape de compilation JIT pénalise C#, je veux bien, mais sur un véritable programme qui tourne plusieurs heures ou jours, ça ne peut être que le contraire…
    Le meilleur exemple, c'est feu les Windows Phone : pour du matériel d'entrée de gamme, on avait les mêmes performances que sur du haut de gamme avec Android… C# d'un côté, Java de l'autre.
    On ne jouit bien que de ce qu’on partage.

  9. #69
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    3 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 3 892
    Points : 11 330
    Points
    11 330
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Je suis très surpris que personne ne s'offusque des résultats particulièrement décevants de C#... notamment comparé à Java.
    L'explication a déjà été donnée pour d'autres langage est reste tout aussi valable pour C# : les benchmarks ont été effectués à partir du "benchmark game" ou tous les langages n'ont pas bénéficié du même niveau d'optimisation. Si vous vous sentez assez fort pour faire du C# bien optimisé, rien ne vous empêche de soumettre vos programmes.

    Citation Envoyé par StringBuilder Voir le message
    J'ai pas suivi l'évolution de Java ces dernières années, mais il y a quelques temps C# était meilleur sur les trois mesures : CPU, temps d'exécution et RAM.
    Java a probablement progressé (il ne pouvait de toute façon plus aller dans l'autre sens) mais de là à devenir deux fois meilleur que C# sur chacun des trois critères, je suis perplexe…
    Java a en effet bien progressé, mais il n'a jamais été aussi à la ramasse que la réputation que lui faisaient les trolls habituels.

    Citation Envoyé par StringBuilder Voir le message
    Ne serait-ce que d'un point de vue architecture, Java est de facto plus lent que C#, dans la mesure où Java reste en bytecode tout le long de l'exécution, là où C# est compilé nativement au moment de l'exécution…
    Seules les toutes premières versions de Java interprétaient directement le bytecode. La JVM de référence fonctionne par défaut avec du JIT depuis 1996, soit six ans avant la sortie de C#.

  10. #70
    Membre régulier Avatar de openlowcode
    Homme Profil pro
    Développeur Java
    Inscrit en
    juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : juin 2019
    Messages : 36
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par firepolo Voir le message
    Je suis assez étonné de voir Java si haut dans le classement, ça fait plaisir de voir que c'est pas une usine à gaz, comme on le prétend.
    Sûrement grâce au Bytecode qui est très proche des instructions machine ?
    En fait, c'est surtout que les languages interprétés sont encore bien pires pour ce qui concerne la mémoire / la CPU, et à mon avis, ce qui est presque plus grave, aussi pour le temps de débugage.

    Je ne suis pas d'accord avec certaines remarques sur le fait que le hardware n'a plus d'importance: le coût total du hardware dans un projet n'est pas négligeable côté serveur, surtout avec les offres cloud qui vendent l'aspect pratique du cloud assez cher. Cela fait partie du top 10 du gaspillage en informatique de gestion. ON peut donc payer cher à la fin l'utilisation d'une technologie pas efficace.
    Open Lowcode Applications sur mesure, résultats rapides et à coûts réduits (repo Github)

  11. #71
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 : 3 736
    Points : 6 483
    Points
    6 483
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par openlowcode Voir le message
    En fait, c'est surtout que les languages interprétés sont encore bien pires pour ce qui concerne la mémoire / la CPU, et à mon avis, ce qui est presque plus grave, aussi pour le temps de débugage.

    Je ne suis pas d'accord avec certaines remarques sur le fait que le hardware n'a plus d'importance: le coût total du hardware dans un projet n'est pas négligeable côté serveur, surtout avec les offres cloud qui vendent l'aspect pratique du cloud assez cher. Cela fait partie du top 10 du gaspillage en informatique de gestion. ON peut donc payer cher à la fin l'utilisation d'une technologie pas efficace.
    C'est d'autant plus vrai que de nombreux outils éditeurs (OS, base de données, etc.) sont vendus avec des licences par coeur, ou avec des limitations en termes de coeurs et mémoire selon les éditions.
    Par conséquent, un programme mal optimisé qui nécessite plus de puissance risque d'impliquer des coûts logiciels supérieurs uniquement car il a besoin de plus de hardware pour travailler.
    On ne jouit bien que de ce qu’on partage.

  12. #72
    Membre à l'essai
    Homme Profil pro
    apprentit
    Inscrit en
    octobre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : apprentit
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2018
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    Si je programme ( et j'aime ça ) en python, suis-je considéré comme un criminel pour notre planet ?

  13. #73
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    avril 2002
    Messages
    3 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : avril 2002
    Messages : 3 892
    Points : 11 330
    Points
    11 330
    Par défaut
    Tout dépend du programme. Si c'est un Hello World, sa consommation sera négligeable par rapport a ce qu'ont consommé ton IDE, ton compilateur,... Par contre si c'est un programme qui doit tourner des semaines sur un énorme cluster de serveurs, en effet tu as fait un gros gaspillage.

  14. #74
    Membre confirmé

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

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2013
    Messages : 105
    Points : 576
    Points
    576
    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
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  15. #75
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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 : 3 736
    Points : 6 483
    Points
    6 483
    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.
    On ne jouit bien que de ce qu’on partage.

Discussions similaires

  1. Réponses: 53
    Dernier message: 24/04/2017, 17h23
  2. 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
  3. Réponses: 14
    Dernier message: 30/07/2009, 19h31
  4. 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