2009-11-10 39 views
7

Wiem, że jest kilka pytań zadających to samo pytanie "Dlaczego powinienem używać trybu zwolnienia". Problem z odpowiedziami polega na tym, że oni po prostu stwierdzają, dość mocno, że zawsze powinieneś używać trybu wydania, kiedy strona jest w produkcji.Jaka jest prawdziwa korzyść z trybu zwolnienia dla ASP.Net

Dlaczego?

Rozumiem, że kod jest zoptymalizowany w złożeniach, ale na jakim poziomie? Czy zoptymalizuje dobrze napisany kod? Jakie rodzaje optymalizacji wykonuje?

Czy są jakieś analizy dotyczące tego? Czy mimo to mogę przetestować różnice między debugowaniem a wydaniem?

Naprawdę chciałbym, aby ktoś, kto rozumie, dlaczego to przynajmniej podać odniesienie do niektórych ostatecznych materiałów do czytania, jak mam jeszcze znaleźć coś wystarczająco twardego, aby zaspokoić moją ciekawość w tej kwestii.

Odpowiedz

10

Przeczytaj najpierw: http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx, Właśnie znalazłem to jako część odpowiedzi na to pytanie, jest to świetny artykuł.

Zobacz to pytanie: At what level C# compiler or JIT optimize the application code?, aby uzyskać informacje na temat ogólnych optymalizacji kompilatora.

Należy również pamiętać, że w przypadku aplikacji WWW Asp.Net zmiana trybu na wersję spowoduje kompilację zespołów w trybie zwolnienia, ale w przypadku kompilacji strony może być również konieczne edytowanie atrybutu debugowania elementu kompilacji w sieci. config.

<compilation defaultLanguage="c#" debug="true"> 

aplikacje Web robić dziwne rzeczy, kiedy debug = true jest ustawiony, na przykład nie honorować żądania limity czasu, ponieważ będzie to kolidować z debugowania.

Oto wielki artykuł z Gu na temat: Don’t run production ASP.NET Applications with debug=”true” enabled

+0

+1 za link do artykułu Tesses. Dokładnie to chciałem wiedzieć. Dokładna przyczyna tego pytania. Gu zapewnia również wgląd w pamięć podręczną serwerów WebResource.axd i ScriptResource.axd, które są buforowane w wystąpieniach wdrażania w trybie wydania. – Khanzor

+1

Ponadto, jeśli używasz dowolnego narzędzia ASP.NET AJAX, ustawienie opcji debug = "false" w pliku web.config zapewni, że skrócone wersje skryptów MS zostaną wysłane do przeglądarki. –

+0

Fajny @Zhaph, dobrze wiedzieć! – Khanzor