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

MFC Discussion :

[C++] Optimisations Visual C++


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 58
    Par défaut [C++] Optimisations Visual C++
    Bonjour !

    J'ai fait un programme c++ qui nécessite une grande rapidité : il repose sur une boucle infinie qui effectue des calculs et renvoie de temps en temps les meilleurs résultats.

    Comme je débute dans l'utilisation de Visual C++ (j'ai Visual C++ 2005 Express Edition), je voudrais connaître toutes les astuces que vous connaissez pour optimiser mon programme.

    Par exemple, dans les options, j'ai vu que l'on pouvait priviligier un programme court, un programme rapide, ou une optimisation complète (un compromis ?).
    Peut-être qu'il faudrait que je force aussi toutes mes fonctions à être inline puisqu'il paraît que, même si ça augmentera considérablement la taille de mon code (environ multiplié par 3 je pense), il sera plus rapide, et je crois que déclarer une fonction inline n'est qu'une indication pour le compilateur (donc il faut peut-être modifier une option de visual c++).

    Dans mon cas, le temps de chargement de l'exe ne me préoccupe pas et il me faudrait le code le plus rapide possible mais je suis intéressé par toute astuce ou commentaire sur n'importe quel type d'optimisation car je ne sais pas trop quoi modifier et vos commentaires pourront être utiles pour mes prochains programme qui nécessiteront peut-être un autre type d'optimisation.

    Merci à tous les habitués de Visual C++ qui me répondront !

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Oui mais plus un exe est gros en mémoire et plus il est lent. Ainsi, MS compile ses programme afin d'optimiser leur taille et non leur vitesse, parce que aller chercher une page mémoire sur disque au lieu de l'avoir en cache est incomparablement plus lent. Toute la difficulté d'un compilateur est de trouver le bon compromis entre optimisation en vitesse et en taille.
    Pour cela, VC++ 2005 introduit PGO (ou POGO), l'optimisation guidée par profil. C'est à dire que tu compiles de manière spéciale, exécute un scénario typique, et ensuite tu obtiens un fichier d'infos qui va servir à une nouvelle compilation, optimisée. Mais je ne crois pas que la version Express permette cela.
    Sinon WPO a été amélioré (activé par défaut en release). C'est est une sorte d'inlining sur tout le programme.
    http://gilles-vollant.developpez.com.../optimisation/
    Concernant le mot clé inline, il me semble que par défaut VC++ l'ignore et décide seul quoi inliner...
    Tout ceci est bien expliqué dans cette vidéo:
    http://channel9.msdn.com/Showpost.aspx?postid=192143
    (un peu long, mais intéressant)
    et un peu ici:
    http://channel9.msdn.com/Showpost.aspx?postid=181706
    si tu as du temps à tuer...

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 58
    Par défaut
    ok merci beaucoup pour l'info !
    Tout ça m'intéresse.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/10/2010, 20h48
  2. Optimisation Compilateur visual studio
    Par trop_wizz dans le forum C++
    Réponses: 4
    Dernier message: 17/09/2010, 19h39
  3. comment optimiser le code avec visual c# ?
    Par isoman dans le forum C#
    Réponses: 8
    Dernier message: 30/10/2008, 15h05

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