2012-04-10 5 views
8

Gibt es eine Leistungseinbuße von Debug = "True" in der SVC-Datei festlegen? Ist es signifikant genug, um es in einer Produktionsumgebung auf "falsch" zu setzen?@ServiceHost Debug = "wahr" - Leistungseinbuße?

%@ ServiceHost Language="C#" **Debug="true"** Service="AwesomeService" %> 

Dank

Antwort

5

In Ihrem ".svc" Datei, wenn Sie Ihren Dienst als Inline Code schreiben, oder in "App_Code" Ordner und ermöglicht debug Modus Implementierung Service, wird es die Leistung auswirken.

Legen Sie im Allgemeinen immer debug="false" fest, bevor Sie die Produktion bereitstellen. Wenn der Debug-Modus aktiviert ist, kann die Leistung Ihrer Anwendung verringert werden.

Im Release-Modus werden die Debug-Symbole in die Versammlung nicht gebacken, so Sie es nicht debuggen können Visual Studio .NET oder andere Quellcode Debugger verwenden. Was ist cool ist, dass der Code auch während dieser Build-Operation optimiert ist.

3

Die kurze Antwort ist ja aber wenn Sie alle blutigen Details wollen, schauen Sie sich diese gut blog post zum Thema.

+0

Dieser Blog-Eintrag ist ziemlich alt und irgendwo veraltet. – abatishchev

+0

Alt bedeutet nicht inkorrekt, der Effekt von debug = true ist weiterhin in IIS 7.5 anwendbar und es gibt eine interne Compileroptimierung, die deaktiviert wird, wenn eine Assembly mit debug = true übereinstimmt, unabhängig davon, welche Version von ASP.NET Sie verwenden. Wenn Sie Einzelheiten zu Ungenauigkeiten haben, erklären Sie dies bitte. –

3

Scheint, dass dieser Schalter Debug-Symbol-Generierung nur für Inline-Code steuert.

Debug-Symbole für die Code-Behind-Generierung, die durch andere Optionen gesteuert wird.

Wenn Sie keinen Inline-Code haben, treffen Sie nicht die Leistung.


Inzwischen MSDN states wie folgt zusammen:

Debug

Gibt an, ob die Windows Communication Foundation (WCF) Dienst sollte mit Debug-Symbolen kompiliert werden. true, wenn der WCF-Dienst mit Debug-Symbolen kompiliert werden soll; sonst falsch.

Verwandte Themen