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

DirectX Discussion :

les performances du C# et du visual basic


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Points : 23
    Points
    23
    Par défaut les performances du C# et du visual basic
    Bonjour,
    Je voulais savoir ce que valent ces langages par rapport au C++ ?
    Avez vu pu voir la comparaison sur une même scène ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Salut, la seule chose que je peux te dire sur le C# c'est qu'il représente le futur langage maître pour la plateforme Windows. Il apporte un gain certain de productivité par la clarté de sa syntaxe et par sa quantité de classes préexistantes. Il est donc facile de programmer en C#, rapide et le tout avec toutes les techniques de la programmation objet (mis à part l'héritage multiple) actuelle (les pointeurs existent en mode unsafe).
    En terme de performances pure, je peux t'assurer que le C# n'a pas à rougir face au C++, mais le premier chargement par exemple est plus long (du à la compilation en JIT). Le C# compile en juste à temps (il prend uniquement ce qu'il a besoin en gros et compile en natif et non en langage interprété comme certains le prétendaient). Selon plusieurs tests, le c++ est devant le c#, mais certains c'est l'inverse (notamment dans la gestion des lumières).
    Je pense qu'il faut voir le développement .Net comme un outil de gain de productivité plutôt qu'un ensemble de langage les plus rapides/performants. C'est un confort de programmation et une nouvelle perspective qui s'ouvre à nous... Je te parle avec connaissance de cause car on est en ce moment en train de développer un jeu à cette adresse : http://backfire.conception-informatique.com.

    Voilà à toi de faire le bon choix selon tes propres critères !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Points : 23
    Points
    23
    Par défaut
    merci ! et je suppose que le visual basic est derrière le C# ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    d'après des tests diffusés sur le net, oui le Visual Basic .Net est derrière le C# en terme de performances (mais c'est très léger). Le C# génère moins d'instrustions MSIL que le VB c'est pour quoi ce dernier est moins performant : au moment de la compilation JIT il lit plus de lignes en gros. Microsoft a privillégié le C" sur ce coup là.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 44
    Points : 23
    Points
    23
    Par défaut
    ok merci pour tes infos

  6. #6
    Membre actif Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 296
    Points
    296
    Par défaut
    perso j'utilise vb.net pour mon projet de moteur 3d, et je n'est pas du tout à me plaindre des performances, et qu'elle simplicité ce langage, ralala c'est tout une histoire d'amour

  7. #7
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    moi je sais pas, g jamais prog avec autre chose que le C ou C++ mais je sais que les jeux vidéo sont plutôt programmé avec c langage là par rapport au vb.net ou C# ... il doit donc y avoir qq différences de performence non ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Personnellement, je pense que si les développeurs restent sur le c/c++ c'est surtout dû à une réutilisation des classes développées et améliorées depuis plusieurs années. Il serait trop coûteux de traduire tous les codes en c# ou vbnet, surtout si la seule utilité est de changer de langage. Les langages .Net sont récents, mais je parie qu'avec le prochain windows, des développeurs qui créeront un nouveau moteur graphique opteront pour cette nouvelle technologie qui leur permettra de gagner énormément de temps et d'argent dans les coûts de développement. A mon avis ils préfèreront "sacrifier" quelques FPS (130 au lieu de 150 par exemple) à une meilleure conception et organisation du travail. De plus rien ne nous assure que les applications .Net ne seront pas plus performantes sur le nouveau windows que les applications Win32... Si tu dois commencer une application directX, je te conseillerai vivement de te lancer avec le .Net (pour toutes les bonnes raisons que j'ai cité ultérieurement), mais je te conseille aussi (si ce n'est pas le cas) d'apprendre la programmation c/c++ car elle ne disparaîtra pas de si tôt.

  9. #9
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    l orga en C++ serais moins bien qu en C# ? je me permet d en douter on organise son travail comme on veux, si tu prog à la truelle tu peux le faire en n importe quel langage...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Je n'ai écrit nulle part que le c# est moins bien que le c++, mais je dis simplement que le c# apporte des gains de productivité non négligeable. De plus, il y a une confusion générale car comparer le c++ et le c# est incohérent puisqu'il s'agirait plutôt de comparer deux technologies différentes : le .Net et le Win32 par exemple.

    De plus, le c++ existe en .Net (avec quelques modifications pour adhérer aux nécessités du framework .Net) donc ceci n'est pas une affaire de langage mais de technologie.

    Pour résumer : si tu veux développer une application 3d la plus performante à l'heure actuelle et que tu as beaucoup de temps libre, le c++ sera le candidat le plus efficace c'est inévitable. Maintenant, si tu souhaites programmer la même chose plus rapidement, ton choix se portera sur le .Net mais avec des performances moins élevées (pour l'instant) et donc le C#, le C++.Net ou le Vbnet seront les favoris...

    c++ = performances mais technologie vieillotte
    .Net/c#/VbNet = productivité, technologie récente risquant d'être la plus prisée et favorisée par Microsoft à l'avenir. Ce qui incitera fortement les développeurs (à contre-coeur pour beaucoup) à se familiariser au .Net. L'avenir nous le dira.

  11. #11
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    non moi tt ce qui me plaisais pas c t simplement ça :

    backfire :
    A mon avis ils préfèreront "sacrifier" quelques FPS (130 au lieu de 150 par exemple) à une meilleure conception et organisation du travail.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Ok je vois, mais ça recoupe tout de même ce que je disais : le c++ en Win32 aura de meilleures performances mais présente une lourdeur et complexité (inutile ?) de programmation que les langages .Net effacent. Tu as du faire un contresens et du croire que je disais que le c++ afficherait moins de FPS

    Mais pour illustrer ce que tu disais tout à l'heure à propos de la programmation à la truelle : un bon programmeur est une personne économe en ressource et donc optimise toujours son code. Il vaut mieux un excellent algorithme en .net qu'un moyen en c++.

  13. #13
    mat.M
    Invité(e)
    Par défaut
    Salut, la seule chose que je peux te dire sur le C# c'est qu'il représente le futur langage maître pour la plateforme Windows.
    oui mais C++ ou C# c'est pas ça qui va me permettre de mener à bien l'aboutissement d'un projet de jeu vidéo

    e c++ en Win32 aura de meilleures performances mais présente une lourdeur et complexité (inutile ?) de programmation que les langages .
    Quel rapport avec Direct X ? win32 est peu utilisée avec Direct X
    C'est certain qu'utiliser win32 pour un projet de gestion .....


    Tu as du faire un contresens et du croire que je disais que le c++ afficherait moins de FPS
    Avec un programme affichant plus de 128 FPS on ne fait pas un jeu avec ça.
    Les FPS c'est vrai que c'est primordial mais ça ne suffit pas à faire un bon jeu

  14. #14
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Salut tout le monde.

    Juste pour dire que les sources du jeu QUAKE 3 sont en en ligne. Vous trouverez l'adresse ici:

    http://fr.wikipedia.org/wiki/Quake_3.

    A propos des performances de jeu entre les différents langages, n'oubliez pas que de nos jours c'est la carte graphique qui fait le plus gros travail (merci ATI, NVIDIA et les autres). Je parle bien sur des shaders et de leur programmation qui font que quelque soit le langage utilisé, une scene peut s'afficher très rapidement puisque pour le langage, son travail consiste à envoyer les données à la carte.

    La différence entre ces langages pourrait être comparée, si une utilisation massive de l'IA est faîte par exemple. On pourait voir alors si la programmation d'un algorithme en C# ou en visual basic n'a pas à rougir devant le même en C ou C++.

    Je voudrais dire aussi que dans la plupart des jeux vidéos, l'optimisation est omniprésente. Regarder la programmation des shaders. C'est de l'assembleur!!! Il y a bien le HLSL ou le CG, mais leur compilateur ne sont pas encore optimisés comme le sont ceux du C++ par exemple.

    Par contre pour le choix du langage, C++ peut toujours être un bon choix (sans parler de performance).
    En effet, vu la progression de linux, on pourrait s'attendre à ce que le nombre de joueurs de cette plateforme devient tel, que la production de jeu pour linux soit incontournable. Et faire des jeux en C# pour linux c'est pas simple. D'ailleurs si des portages sous linux sont en cours d'essais, c'est pas pour rien... On verra peut-être même directX pour linux...

    C'est très commercial, tout ça.

    Un dernier mot. Faîtes-vous plaisir à programmer des jeux dans votre langage de prédilection. Si vous ne faîtes pas de jeux commerciaux, le choix du langage vous appartient.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Très bonne intervention moldavi, je suis entièrement d'accord avec toi sur l'utilité des cartes graphiques de nos jours, de l'utilisation massive de l'IA qui pourrait faire pencher la balance, des pixels et vertex shaders qui sont articulés par un propre langage (proche du c/c++ chez Nvidia : Cg).

    Je voulais aussi souligner que la NASA a développé en Managed Code leur logiciel gratuit World Wind (180 Mo) qui est en fait l'équivalent de Goggle Earth mais en beaucoup plus poussé. Par contre je ne sais pas si le logiciel a été écrit en C#, en VB ou en C++.Net... La NASA a opté pour le développement .Net, nous pouvons être sûr que c'est pour de bonnes raison (Connections serveurs, coût de développement etc).

    Bref comme le disait moldavi, l'important est de programmer dans son langage et pour sa plateforme de prédilection.

  16. #16
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par backfire
    Très bonne intervention moldavi, je suis entièrement d'accord avec toi sur l'utilité des cartes graphiques de nos jours, de l'utilisation massive de l'IA qui pourrait faire pencher la balance, des pixels et vertex shaders qui sont articulés par un propre langage (proche du c/c++ chez Nvidia : Cg).

    D'accord;alors comment tu programmes en assembleur avec .NET ??
    En plus, je vais pas éternellement troller là dessus, mais .NET à ma connaissance ne supporte pas Direct Show.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par mat.M
    D'accord;alors comment tu programmes en assembleur avec .NET ??
    En plus, je vais pas éternellement troller là dessus, mais .NET à ma connaissance ne supporte pas Direct Show.
    A vrai dire je ne suis pas un spécialiste des pixels/vertex shaders car je ne sais pas du tout les faire (mais ça viendra). Cependant, le Cg de Nvidia est un langage qui gère ces Pixel/vertex shader, donc pas besoin d'assembleur, non ? Et puis microsoft a créer un langage HLSL qui gère tout ça aussi... Ce ne sont que des observations car je n'utilise pas encore les pixel/vertex shaders.

    Sinon tu as raison, directShow n'est pas présent en DotNet, en espérant que ça soit pour bientôt, mais je ne vois pas pourquoi tu nous parles de directShow

  18. #18
    mat.M
    Invité(e)
    Par défaut
    je parle de Direct Show parce qu'ici c'est le forum Direct X et que ce n'est pas supporté par .NET
    Or c'est un flot de propos dythirambiques et d'éloges que tu fais sur cette technologie

Discussions similaires

  1. Réponses: 31
    Dernier message: 22/04/2014, 14h55
  2. problème sql avec les concepteurs visual basic
    Par Le Rebel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/05/2006, 10h25
  3. Visual basic récupéré les trames usb
    Par sangoku303 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/04/2006, 16h37
  4. [VB6]les directive de compilation visual basic 6
    Par tytyi11 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/03/2006, 16h43
  5. Les onglets dans Visual Basic
    Par kilhom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/10/2005, 19h33

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