2009-08-09 11 views
3

Beim Hochladen meiner ASP.NET-Webanwendung .dll-Datei auf meine Website/bin/Verzeichnis, gibt es irgendwelche Nachteile der Verwendung der Debug-Version im Gegensatz zu einem Release-Build neu kompilieren.ASP.NET Website DLL: Debug vs. Version

Wenn Sie beispielsweise lokal auf der Website arbeiten, wird die Build-Konfiguration auf Debug gesetzt. Wenn die Dinge gut aussehen, fahre ich fort und lade die neueste .dll für die Website/Webapp hoch. Soll ich stattdessen zu diesem Zeitpunkt die Build-Konfiguration auf Release umstellen, dann kompilieren und dann diese Version der .dll auf den Server hochladen?

Ich hoffe, diese Frage ist kein Duplikat. Ich las eine Reihe anderer Fragen mit ähnlichen Wörtern in dem Thema, fand aber nichts, was direkt mit meiner Frage zusammenhing.

Danke,

Adam

+0

Geben Sie an, ob es sich um ein Webanwendungsprojekt (erstellt mit Datei-> Neues Projekt) oder um eine Website (erstellt mit Datei-> Neue Website) handelt. –

Antwort

5

Das Ausführen mit Debug-Assemblys ist ein wenig schwerer auf Leistung, wie sie mehr Arbeitsspeicher belegen, aber normalerweise nicht so extrem. Sie sollten nur dann einen Release-Build bereitstellen, wenn es sich wirklich um ein "Release" handelt. Wenn Sie unerwartetes Verhalten in der freien Wildbahn antizipieren, sollten Sie Debug-Assemblierungen verwenden, damit Sie nützlichere Informationen aus nicht behandelten Ausnahmen erhalten. Die wirkliche Leistung "Gotcha" hat debug="true" in Ihrer web.config.

2

Eine Menge davon ab, was Ihre individuellen Bedürfnisse sind abhängt. Im Allgemeinen raunen die Leute aus Performancegründen, den Debug-Build in die Produktion zu bringen. Der ausgegebene Debug-Code ist offensichtlich nicht optimiert und enthält Debug-Symbole, die die Ausführung des Codes verlangsamen können.

Auf der anderen Seite habe ich an Stellen gearbeitet, an denen die Richtlinie Debug-Builds in die Produktion einbinden sollte, weil es die Zeilennummer usw. leicht sichtbar macht, wenn der Code Ausnahmen auslöst. Ich sage nicht, dass ich dieser Position zustimme, aber ich habe gesehen, wie die Leute das gemacht haben.

Scott Hanselman hat eine gute Post auf eine Hybrid-Version von Debug und Release, die Sie das Beste aus beiden Welten here bekommen konnte.

1

Sehr wenige Anwendungen werden einen signifikanten Leistungsunterschied zwischen Release- und Debug-Builds feststellen. Wenn Sie eine kleine bis mittelgroße Anwendung ausführen und der Meinung sind, dass Fehler auftreten, die Sie nicht bemerkt haben, verwenden Sie den Debug-Build.

+0

Jinx :-) Posted den gleichen Gedanken Sekunden später. –

2

Wenn Sie eine Webseite mit geringem Umfang haben, werden Sie die Leistungseinbußen einer Debug-Assembly in keiner messbaren Weise sehen. Wenn Sie ein hohes Volumen haben, schauen Sie stattdessen in andere Mittel zum Protokollieren/Instrumentieren.

Auf einer hochvolumigen Website MÜSSEN Sie umfangreiche Stresstests durchführen, um die Anwendung zu zerbrechen, bevor sie in Produktion geht. Ich würde den ersten Durchlauf dieser Tests mit Debug-Assemblies durchführen (da Sie wahrscheinlich Dinge kaputt machen werden, und es wird es einfacher machen, wo zu sehen). Wiederholen Sie dann mit den Release-Assemblys, um sicherzustellen, dass sie sich genauso verhalten wie die Debug-Assemblies.