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

C++/CLI Discussion :

Performances: Code Natif / Managé


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut Performances: Code Natif / Managé
    Actuellement, mon code est natif et le passage à un code managé est à l'étude.

    Comme l'application en question va devoir traiter un nombre important de données [fichiers, base de donnée, ...], la question des performances est prioritaire.

    Plus précisément, est ce que l'utilisation de la CLR va ralentir l'exécution du programme ou les optimisations qu'elle implique apporteront plus de rapidité ?

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    clairement : ralentir l'execution .

    Le code natif n'est pas natif pour rien !!!

    Cependant avec un code managé tu gagne en securité , temps de developpement, possibilité d'interfacage,... and many many more... mais pas en perf...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    C'est toujours bon de bien mettre les pieds dans le plats

    Merci pour ta prompt réponse

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 67
    Points
    67
    Par défaut Managé != Baisse en performance
    Je réouvre le sujet suite à quelques recherches sur le sujet.

    Il semblerai que malgré la surcharge système de la CLR, il serait possible d'avoir une meilleur utilisation des ressources par une optimisation du code natif généré par le CLR et par une gestion plus point de la mémoire et des instructions spécifiques du processeur utilisé.

    Je voulais savoir ce que vous en pensiez.
    Par soucis d'objectivité, je ne peux pas trop m'avancer sur le sujet. Je cherche toutes les raisons pour passer au C# mais il faut que mon directeur technique soit rassuré sur les performances finales par rapport à du C++.

    Si vous avez des expériences comparatives dans le domaine, je suis preneur car j'ai toujours mes chances de défendre mon petit bout de gras si C# est juste derrière C++.

  5. #5
    Membre habitué Avatar de Nikoui
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Points : 142
    Points
    142
    Par défaut
    Je me suis retrouvé il y'a quelque temps dans cette situation : nouvelle version d'un soft à refaire en C#, avec un gros point d'interrogation sur les performances (d'autant que les choix d'architecture étaient assez ambitieux, archi n-tier (C# du serveur au client riche) avec des frameworks de notification, de mapping O/R, etc fait maison (en C# eux aussi)).

    Au final le bilan que je ferai de cette expérience :
    - Les perfs sur les algo complexes et sur les parties de code critique sont tout à fait satisfaisantes.
    - Côté client, l'IHM à posé quelques problemes de perf (il faut dire qu'on utilisait des dégradés de couleurs, de la transparence etc).

    Pour résumer, à part l'IHM qui "rame" lorsqu'on manipule des formulaires trop compliqués (composés de nombreux composant, user controles, le tout créé dynamiquement....) le reste offrait des performances supérieures à nos attentes.

    Et donc un très bon choix dans notre cas, car nous nous somme permis de mettre en place une archi et une série de framework très souples et puissants (en privilégiant l'archi / le design sur les perf, quitte à optimiser plus tard si besoin) pour obtenir en fait une application qui répondait parfaitement malgré la complexité des traitements.

    Après tout dépend donc tu type d'application que tu développe, pour ma part j'aurai tendance à te mettre en garde si tu prévois de réaliser des IHM complexes (d'autant plus que c'est ce qui est directement sous les yeux de l'utilisateur, rien de pire qu'un IHM qui "clignote de partout" lorsque tu passes d'un tab a un autre...). Pour le reste, je te conseille tout de même de faire des bench mark ou de petit proto, mais je ne serai pas inquiet des performances à attendre - pour ma part j'ai été bluffé (comme je le suis avec les applications actuelle en Java, comparé à ce que j'ai connu il y'a quelques années...).

Discussions similaires

  1. asm.js s’approche des performances du code natif C/C++
    Par Hinault Romaric dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 25/12/2013, 19h50
  2. accès code managé depuis code natif
    Par krossark dans le forum C++/CLI
    Réponses: 1
    Dernier message: 18/06/2010, 16h31
  3. Foncteur managé pour du code natif
    Par nikopol82 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 14/10/2008, 18h35
  4. [JavaComm]Pb avec l'execution d'un code natif sous linux
    Par seb31 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 02/06/2004, 15h25

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