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

Langages de programmation Discussion :

Performances des langages


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut Performances des langages
    Salut à tous,

    J'ai testé quelques langages.

    http://perso.orange.fr/2007/Code/hworld/

    Vos impressions?

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Tu n'es certes pas le premier à le faire, et le problème qui revient toujours n'est aps de comparer le temps d'exécution en lui-même, mais comment tu as écris le code...

    En effet, de très simples différences dans le code peuvent augmenter considérablement le temps d'exécution, alors que d'autres vont le diviser drastiquement.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Lunixinclar
    Salut à tous,

    J'ai testé quelques langages.

    http://perso.orange.fr/2007/Code/hworld/

    Vos impressions?
    Qu'est-ce que tu voulais comparer? Quelles sont les conclusions que tu crois pouvoir tirer de l'exemple que tu as pris? Quelles sont les précautions que tu as prises pour éviter des biais (quand je compare la taille de l'exécutable Fortran et de l'exécutable C, je me dis qu'il y a un problème dans la manière dont la mesure a été faite)?

  4. #4
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    C'est sûr qu'un hello world ne peut servir à comparer la puissance des langages.
    En revanche il dénote certains écarts dans le temps de chargement.

    Jean-Marc il n' y a qu'à cliquer sur le lien "infos" pour voir la ligne compilation (ainsi que la version du compilateur). Si tu as une suggestion pour la taille des exécutables n' hésites pas à la partager!

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Lunixinclar
    C'est sûr qu'un hello world ne peut servir à comparer la puissance des langages.
    En revanche il dénote certains écarts dans le temps de chargement.
    En quoi le temps de chargement d'un hello world est caractéristique du temps de chargement d'une application?

    Jean-Marc il n' y a qu'à cliquer sur le lien "infos" pour voir la ligne compilation (ainsi que la version du compilateur). Si tu as une suggestion pour la taille des exécutables n' hésites pas à la partager!
    Tu compares d'une part la taille de scripts (qui pour être utiles ont besoin d'un exécutable) avec d'autre part des exécutables liés dynamiquement et des exécutables liés statiquement. Qu'est-ce que tu peux conclure de ça?

  6. #6
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    La question c'est surtout de savoir ce que toi tu peux en conclure.

    Ben c'est intéressant de constater des différences entre les langages compilés/pré-compilés et interprétés.
    Même si tous n'ont pas le même potentiel (portabilité/GUI/syntaxe facile à assimiler/...) et que les shells sont TRES limités au niveau des tableaux, on peut se demander dans quel cas certains langages sont à privilégier plutôt que d' autres, et pourquoi tous cohabitent
    sans prédominance de l' un sur les autres?

    Quelques conclusions

    1) Les langages compilés sont les plus rapides au chargement. Même si dans l' absolu c'est stupide, c'est à prendre en compte par qui veut écrire l' appli la plus rapide au monde. Certains shells s'en sortent bien quand même.

    2) Dans le cadre d'un système comptant plusieurs applications, les langages compilés occupent plus d' espace disque car pour un nombre équivalent d' applications, les langages interpétés n' occupent que la place de leur source et de l' interpéteur.

    3) Les langages interprétés ont moins de lignes de code. Donc un temps de développement inférieur? Ca dépend surtout du programmeur. Cet été sur le forum "langage C" on a testé l' implémentation d'un algorithme par plusieurs programmeurs C. Ce que certaines implémentations font en 20ms, d' autres le font en 300. C'est pourquoi le "hello world" est la seule chose qui soit vraiment comparable entre plusieurs langages car pour un langage donné, il y a autant de façons d' écrire un programme qu'il y a de programmeurs. Et autant de différences de vitesse. Je n' avais pas compris ça au début... c'est con à dire mais c'est vrai.

    4) La présentation des résultats est nulle, est-ce que la forme est plus importante que le fond?

    5) Ce que fait Java sur une application minimale, le C a le temps de le faire 26 fois. Ce n'est pas si anecdotique que ça: beaucoup d' applications système ont un rôle ultra-précis comme d'envoyer une seule chaîne sur la sortie standard. Java rame au démarrage, probablement à cause de son garbage collector. Mais il se rattrape sur la portabilité, qui a un prix. Une appli java est portable au niveau binaire, alors que le C est portable au niveau source.

    etc, etc ...

  7. #7
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Lunixinclar
    La question c'est surtout de savoir ce que toi tu peux en conclure.
    Rien d'intéressant.

    Quelques conclusions

    1) Les langages compilés sont les plus rapides au chargement. Même si dans l' absolu c'est stupide, c'est à prendre en compte par qui veut écrire l' appli la plus rapide au monde. Certains shells s'en sortent bien quand même.
    Qu'est-ce qui te fait croire que tes mesures sont caractéristiques de ce qui se passe pour de plus gros programmes?

    2) Dans le cadre d'un système comptant plusieurs applications, les langages compilés occupent plus d' espace disque car pour un nombre équivalent d' applications, les langages interpétés n' occupent que la place de leur source et de l' interpéteur.
    Et les bibliothèques partagées?

    3) Les langages interprétés ont moins de lignes de code. Donc un temps de développement inférieur? Ca dépend surtout du programmeur. Cet été sur le forum "langage C" on a testé l' implémentation d'un algorithme par plusieurs programmeurs C. Ce que certaines implémentations font en 20ms, d' autres le font en 300. C'est pourquoi le "hello world" est la seule chose qui soit vraiment comparable entre plusieurs langages car pour un langage donné, il y a autant de façons d' écrire un programme qu'il y a de programmeurs. Et autant de différences de vitesse. Je n' avais pas compris ça au début... c'est con à dire mais c'est vrai.
    Et "hello world" n'est en rien caractéristique de vrais programmes. Donc les conclusions que tu peux tirer d'une comparaison basée sur ça me semblent suspectes a priori.

    5) Ce que fait Java sur une application minimale, le C a le temps de le faire 26 fois. Ce n'est pas si anecdotique que ça: beaucoup d' applications système ont un rôle ultra-précis comme d'envoyer une seule chaîne sur la sortie standard. Java rame au démarrage, probablement à cause de son garbage collector.
    S'il y a bien une chose à laquelle je n'attribuerais pas la lenteur de Java au démarrage, c'est au garbage collector. Sur quelque chose d'aussi simple, il ne se met pas en route...

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    pour java, tu pourrais preciser directement que tu utilises Kaffe, c'est pas le plus commun pour faire tourner ce langage, et surement pas le plus rapide non plus d'ailleurs

    sinon, je pense aussi que faire du test sur hello world, ben ca n'a aucun interet

  9. #9
    Membre éclairé Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Par défaut
    Au moin maintenant, si on veut faire un Hello world, on sais quel language utiliser !

Discussions similaires

  1. Ecart de performances des langages
    Par yetimothee dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 19/06/2013, 17h32
  2. performances des virtual functions
    Par xxiemeciel dans le forum C++
    Réponses: 2
    Dernier message: 25/07/2005, 17h24
  3. avantages des langages objets face au procéduraux ?
    Par airseb dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 10/12/2004, 16h26
  4. Performance des vertex array
    Par Mathieu.J dans le forum OpenGL
    Réponses: 13
    Dernier message: 25/06/2004, 10h47
  5. [Débat] Que pensez-vous des langages à typage dynamique?
    Par Eusebius dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 16/06/2004, 12h12

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