Partager via


Optimisation JIT et débogage

Lorsque vous déboguez une application managée, Visual Studio supprime l'optimisation de code juste-à-temps (JIT) par défaut.La suppression de l'optimisation JIT signifie que vous déboguez un code non optimisé.Le code s'exécute un peu plus lentement parce qu'il n'est pas optimisé, mais votre expérience de débogage est beaucoup plus complète.Le débogage de code optimisé est plus ardu et est recommandé uniquement si vous rencontrez un bogue qui se produit dans un code optimisé mais ne peut pas être reproduit dans la version non optimisée.

L'optimisation JIT est contrôlée dans Visual Studio par l'option Supprimer l'optimisation JIT lors du chargement du module.Vous pouvez rechercher cette option sur la page Général sous le nœud Débogage dans la boîte de dialogue Options.

Si vous effacez l'option Supprimer l'optimisation JIT lors du chargement du module, vous pouvez déboguer le code JIT optimisé, mais votre capacité de débogage peut être limitée car le code optimisé ne correspond pas au code source.En conséquence, les fenêtres de débogage telles que Variables locales et la fenêtre Automatique ne peuvent pas afficher autant d'informations qu'elles le peuvent si vous déboguez un code non optimisé.

Une autre différence importante concerne le débogage avec Uniquement mon code.Si vous déboguez avec Uniquement mon code, le débogueur considère le code optimisé comme un code non-utilisateur, qui ne doit pas être affiché pendant le débogage.Par conséquent, si vous déboguez un code optimisé JIT, vous souhaiterez probablement désactiver Uniquement mon code.Pour plus d'informations, consultez [NIB] 12/13 Comment : effectuer un pas à pas détaillé dans Uniquement mon code.

Souvenez-vous que l'option Supprimer l'optimisation JIT lors du chargement du module supprime l'optimisation du code lorsque les modules sont chargés.Si vous rejoignez un processus déjà en cours d'exécution, il peut contenir un code qui est déjà chargé, compilé par JIT et optimisé.L'option Supprimer l'optimisation JIT lors du chargement du module n'a aucun effet sur un tel code, bien qu'elle affecte des modules qui sont chargés après l'attachement.De plus, l'option Supprimer l'optimisation JIT lors du chargement du module n'affecte pas les modules, tels que WinForms.dll, qui sont créés avec NGEN.

Voir aussi

Tâches

[NIB] 12/13 Comment : effectuer un pas à pas détaillé dans Uniquement mon code

Concepts

Processus d'exécution managée

Autres ressources

Débogage du code managé

Attachement à des processus en cours d'exécution