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 :

comment comparer les performances de 2 langages ?


Sujet :

Langages de programmation

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut comment comparer les performances de 2 langages ?
    Salut,
    dans le cadre d'un projet je dois réaliser un comparatif entre java EE vs .Net (performance) mais j'avoue que j'ai ne sait pas trop quels genres de tests il faut réaliser.
    Pouvez vous me conseiller svp ?
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    La réponse est : ce n'est pas vraiment possible... Généralement on utilise des benchmarks, mais il s'agit là d'un outil imprécis et délicat, trompeur.
    Il y a d'abord la question du contenu des benchmarks : doivent-ils être complexes ou simples, en terme d'objectif, de moyens ? Ensuite il y a l'influence de la "qualité" du code et des programmeurs pour les langages respectifs : pour avoir quelque chose d'équitable, les programmeurs doivent être relativement experts dans leur langage mais ne pas écrire du code ultra-optimisé comme ils ne le feraient jamais en réalité, il doivent se limiter à du code typique du langage, malheureusement un critère difficile à définir.

    Les seuls moyens plus fiables seraient des études statistiques massives sur des programmes produits en temps finis dans les deux langages, mais tu n'auras jamais les moyens de réaliser une pareille étude, et cela n'a jamais réellement été fait.

    --
    Jedaï

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jedai Voir le message
    [...]
    Les seuls moyens plus fiables seraient des études statistiques massives sur des programmes produits en temps finis dans les deux langages, mais tu n'auras jamais les moyens de réaliser une pareille étude, et cela n'a jamais réellement été fait.[...]
    Je n'ai pas connaissance non plus de telles études. De plus, il faudrait que les programmes produits soient réellement comparables, ce qui est une autre source de problème. Car qui voudrait dépenser deux fois de l'argent pour obtenir exactement le même programme ?

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut
    ça ne serait pas possible de faire ça avec des algos ultra simple? (genre lecture/écriture dans un fichier, calcul arithmétique, consommation de la ram etc ..)
    Merci d'avance.

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par isoman Voir le message
    consommation de la ram
    Consommation de RAM avec une machine virtuelle, c'est pas super pratique.
    En java, on autorise l'application à utiliser un certains nombres de mémoire au lancement (par exemple 512mo), si ça dépasse, une exception OutOfMemory est lancée. Sinon, ça reste au maximum de la mémoire qui a été consommé à un temps donné.

    Par exemple, si tu crées une image de 10000*10000 et que tu ne t'en sers plus après, la machine virtuelle gardera l'espace précédemment alloué pour y mettre d'autres choses.

    Et allouer une image de 10000*10000 (je parle en mémoire, sans système de cache), que ce soit dans n'importe quel langage, ça prendra autant de place
    Je ne répondrai à aucune question technique en privé

  6. #6
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 061
    Points
    32 061
    Par défaut
    Citation Envoyé par isoman Voir le message
    ça ne serait pas possible de faire ça avec des algos ultra simple? (genre lecture/écriture dans un fichier, calcul arithmétique, consommation de la ram etc ..)
    Merci d'avance.
    ...mais alors tu testes le language dans une configration bien précise. Pas "en général". Dans le cadre de ton projet, je te dirais d'établir un certains nombre de critères, et de chronométrer en force brute sur chacun. Genre :

    lecture/ecriture mémoire
    lecture/ecriture fichier
    acces données massives
    calculs scientifiques
    remplissage de collections

    mais ça te donnera une indication par type de tâche. aucun indicateur général n'a de sens, je pense, les autres l'on déjà expliqué.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

Discussions similaires

  1. comment augmenter les performances d'une application
    Par jasminblanc dans le forum Firebird
    Réponses: 1
    Dernier message: 17/07/2007, 19h39
  2. Réponses: 2
    Dernier message: 01/08/2006, 10h20
  3. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  4. Réponses: 17
    Dernier message: 31/12/2005, 21h32

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