Partager via


Optimisation du code

En optimisant un fichier exécutable, vous pouvez atteindre un équilibre entre vitesse d'exécution et taille de code minime. Cette rubrique décrit certains mécanismes fournis par Visual C++ pour vous aider à optimiser le code.

Fonctionnalités de langage

Les rubriques suivantes décrivent certaines des fonctionnalités d'optimisation des langages C/C++.

  • Pragmas et mots clés de l'optimisation
    Liste de mots clés et pragmas que vous pouvez utiliser dans votre code pour améliorer les performances.

  • Options du compilateur classées par catégorie
    Liste d'options du compilateur /O qui affectent spécifiquement la vitesse d'exécution ou la taille du code.

  • Déclarateur de référence Rvalue : &&
    Les références rvalue prennent en charge l'implémentation de la sémantique de déplacement. Si la sémantique de déplacement est utilisée pour implémenter des bibliothèques de modèles, les performances des applications utilisant ces modèles peuvent être considérablement améliorées.

Pragma optimize

Si une section de code optimisée provoque des erreurs ou un ralentissement, vous pouvez utiliser le pragma optimize pour désactiver l'optimisation de cette section.

Incluez le code entre deux pragmas, comme suit.

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

Méthodes de programmation

Vous pouvez remarquer des messages d'avertissement supplémentaires lorsque vous compilez votre code avec l'optimisation. Ce comportement est normal car certains avertissements concernent uniquement le code optimisé. Vous pouvez éviter de nombreux problèmes d'optimisation en tenant compte de ces avertissements.

Paradoxalement, l'optimisation d'un programme pour gagner en vitesse peut provoquer un ralentissement de l'exécution du code. Ceci s'explique parce que certaines optimisations destinées à gagner de la vitesse augmentent la taille du code. Par exemple, l'incorporation de fonctions éliminent les charges mémoire des appels de fonction. Toutefois, l'incorporation de fonctions sur une trop grande quantité de code peut augmenter la taille de votre programme, et avec, le nombre d'erreurs de page de la mémoire virtuelle. Par conséquent, le gain obtenu en termes de vitesse par l'élimination des appels aux fonctions peut être annulé par le phénomène d'échange de mémoire.

Les rubriques suivantes décrivent les meilleures pratiques de programmation.

Débogage de code optimisé

Dans la mesure où l'optimisation peut modifier le code créé par le compilateur, nous vous recommandons de déboguer votre application et de mesurer ses performances, puis d'optimiser votre code.

Les rubriques suivantes fournissent des informations de base sur le débogage.

Les rubriques suivantes fournissent des informations plus approfondies sur le débogage.

La série de rubriques suivantes fournit des informations sur l'optimisation de la génération, du chargement et de l'exécution de votre code.

Voir aussi

Autres ressources

Référence à la génération C/C++