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 :

Rapidité de compilation C# Vs C++


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 52
    Par défaut Rapidité de compilation C# Vs C++
    Quelqu'un a-il- comparé ou possède-t-il des résultats de comparaison entre la rapidité de compilation en C# et en C++ ?

    Je travaille dans mon stage avec des électroniciens qui ont toujours réalisé les applications de leurs produits en C/C++ et de préférence avec Visual C++ parce que la majorité de leurs clients travaillent sur Windows.

    Sachant que dans quelques années Muicrosoft aura liquidé VC++ (Je le pense) et que les prochaines versions de Windows seront plutôt faites pour des applications développées avec .NET (je le pense aussi), je me dis que les gars de la boite ou je travaille ont intérêt à migrer progressivement vers .NET (en particulier C#).

    Il me vient alors la question :Est-ce que C# compile aussi vite que C++ ?
    (Je sais que l'on préfère parfois C++ à Java parce que ce dernier est plutôt lent à la compilation comparé à C++.
    Alors qu'en est-il de C# ?

    Merci pour vos réponses/
    @+

  2. #2
    DrQ
    DrQ est déconnecté
    Membre émérite
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Par défaut
    C++ (non managé) est plus rapide, mais de toute façon les machines deviennent de plus en plus puissantes donc la question est plutot faut il se prendre la tête avec des langages plus complexes et avoir un temps de développement plus long ?

    Si les applications ne sont pas critiques et qu'une demi seconde n'a pas grande importance, oui vous pouvez utiliser C#.
    Si vous cherchez à aller le plus vite possible alors restez en C.

    Passer à .NET vous permettra de développer vos applications Windows plsu rapidement, mais ces dernières seont plus lentes que l'équivalent en C/C++.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 52
    Par défaut
    Citation Envoyé par DrQ
    C++ (non managé) est plus rapide, mais de toute façon les machines deviennent de plus en plus puissantes [...]
    Passer à .NET vous permettra de développer vos applications Windows plsu rapidement, mais ces dernières seont plus lentes que l'équivalent en C/C++.
    Vous avez de toutes les façons raison. La vitesse des micropocesseurs fera oublier la lenteur de la compilation. Je pensais aussi un peu la même chose. Et puis ceux avec qui je bosse seront bien obligés de passer un jour ou l'autre à .NET.
    Reste à les convaincre de le faire assez vite!!!

    Merci pour la réponse DrQ

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Par défaut
    Je trouve curieux que tu te poses la question sur la rapidité de
    compilation au lieu de la rapidité d'exécution comparée
    de C++/C#

    La compilation n'est qu'une étape pour générer le programme.
    Tout le reste du temps ton programme sera exécuté donc
    la question de la vitesse d'exécution à mes yeux est plus
    sinon aussi importante que la vitesse de compilation.

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 52
    Par défaut
    Tu as raison olrt,
    Alors pendant qu'on y est a tu une réponse à la question que tu soulève ?
    Sinon quelqu'un d'autre peut-il répondre ?
    @+

  6. #6
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    puisque votre ambition est de passer à .NET

    n'aurait-il pas été plus judicieux de vouloir comparer

    C++.NET et VC++ ?

    comparer C# avec VC++ a-t-il un sens ?

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Par défaut
    On peut toujours comparer la vitesse d'exécution d'un même algo écrit en deux langages différents.
    Cependant cela ne suffira pas à dire que tel langage est plus rapide que l'autre.
    En effet la syntaxe des langages est différente.
    Un algorithme donné sera peut-être mieux exprimé par un langage donné car sa syntaxe est plus adaptée. Et le compilateur générera un code plus efficace dans ce cas là.

    Néanmoins je donnerais l'avantage à des langages qui offrent un plus grand contrôle sur la machine sur différents points (accès aux périphériques, à la mémoire, etc.).

    Je voudrais également soulever une question sur l'exécution de code "managé" (c'est-à-dire du code qui s'exécute au-dessus de la machine CLR de Microsoft).

    J'ai lu ça et là que le code "managé" (code IL) était d'abord transformé en code natif avant d'être exécuté.
    Alors qu'est-ce qui garanti que le programme ne va pas faire des accès illégaux à la mémoire ?
    Ma réponse est que les accès mémoire du programme sont délégués à des routines (elles-même en code natif) appelées par le CLR.
    Avec évidemment un overhead dû à ces routines.

    Donc pour résumer :

    C et C++ :
    Plus grand contrôle sur la machine et donc temps d'exécution relativement plus "maîtrisé".
    En revanche voir si l'expressivité du langage est bien adaptée à l'algo à implanter.

    C# :
    Moins de contrôle sur la machine.
    En revanche voir si l'expressivité du langage est bien adaptée à l'algo à implanter.

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. Problème de rapidité d'exécution ou compilation
    Par HASSIOMAR dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2008, 13h13
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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