64 votes

Debug VS Version dans .net

Suite à ma question précédente est une connaissance d'un document exhaustif que de lister l'ensemble des différences entre debug et release modes en application en C#, et en particulier dans les applications web ?

Quelles sont les différences que vous connaissez.

54voto

Joe Points 60749

"Debug" et "Release" sont juste des noms prédéfinis pour les configurations de projet défini par Visual Studio.
Pour voir les différences, regardez l'Onglet Construire dans les Propriétés du Projet dans Visual Studio.

Les différences dans VS2005 comprennent:

  • DEBUG constante définie dans la configuration de Débogage

  • Optimiser le code activé dans la configuration de Version

ainsi que d'autres différences que vous pouvez voir en cliquant sur le bouton "Avancé"

Mais, vous pouvez:

  • Modifier les paramètres de construction pour Debug et Release des configurations dans le Projet de Propriétés / Build

  • Créer vos propres configurations en cliquant-droit sur la solution dans l'Explorateur de solutions et sélectionnez Configuration Manager

Je pense que le comportement de la constante DEBUG est assez clair (peut être référencée dans la #si la directive de préprocesseur ou dans le ConditionalAttribute). Mais je ne suis pas au courant de toute une documentation exhaustive sur exactement ce que les optimisations sont activées - en fait, je soupçonne Microsoft voudrait être libre pour améliorer leur optimiseur sans préavis

18voto

Michael Stum Points 72046

je ne suis pas au courant d'un document concis, mais:

  • Debug.Écrire les appels sont supprimés dans la Version
  • Dans la Version, votre Pile des appels peut paraître un peu "étrange" en raison des optimisations, comme l'a souligné Scott, Hanselman

17voto

Scott Dorman Points 25000

Il n'y a pas un seul document qui répertorie les différences. En plus de quelques différences déjà mentionnés, la compilation en mode Debug désactive la plupart de l'équipe des optimisations du compilateur qui sont effectuées lors de l'exécution et émet également de la plus complète des informations de débogage dans le symbole fichier de base de données (.apb).

Une autre grande différence est que le GC comportement est un peu différent, du fait que le compilateur JIT va insérer des appels à la GC.KeepAlive() comme approprié et nécessaire afin de soutenir les sessions de débogage.

7voto

andleer Points 12090

L'un des principaux performanance zone si vous utilisez l'un de l'asp.net contrôles ajax: les informations de débogage est supprimé de la bibliothèque javascript lors de l'exécution dans la sortie et j'ai vu de grandes améliorations de performance sur le complexe des pages. D'autres ressources disponibles sur le web peuvent être mises en cache ou non mis en cache en fonction de ce paramètre.

Aussi, n'oubliez pas que Debug / Release dans une application web est dicté par le web.fichier de config, pas vos paramètres de Visual Studio.

<system.web>
    <compilation debug="true">

Plus d'infos:

http://msdn.microsoft.com/en-us/library/s10awwz0.aspx

http://weblogs.asp.net/scottgu/archive/2006/04/11/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled.aspx

5voto

Hallgrim Points 7198

Dessin avec GDI+ est beaucoup plus lent en mode de Débogage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X