ASP.NET MVC-Slow initial load

Niedawno stworzyłem asp.net aplikacji webowej mvc i opublikował ją w Internecie.

Przy pierwszym ładowaniu strony powinieneś zauważyć, że to trwa około 10-15 sekund, zanim faktycznie się pokaże, jednak po kliknięciu raz ładuje się tak szybko, jak się spodziewam za drugim razem. Zastanawiam się tylko, czy ktoś może mieć pojęcie, dlaczego strona trwa tak długo?

Author: Will, 2014-01-16

5 answers

Zazwyczaj ładowanie aplikacji zawsze zajmuje trochę więcej czasu, gdy domena aplikacji się uruchamia.

Może to być wszystko, od źle napisanego kodu (np. Application_Start) do pewnych bibliotek, których możesz używać (np. ORMs). Ile modułów zostało załadowanych?

Na początek sprawdź swoją sieć.config for the infamous <compilation debug="true">. Może to mieć znaczący wpływ na wydajność w konfiguracji produkcyjnej. Ustaw na "false"!

Zalecaj googlowanie czegoś w stylu "poprawa czasu uruchamiania aplikacji " i szukanie rzeczy, które mogą odnosić się do konkretnej aplikacji.

Aktualizacja od pierwszego komentarza:

Jeśli po 30 minutach aplikacja ponownie się uruchamia (zawiesza się na kilka sekund), prawdopodobnie jest to związane z ustawieniami recyklingu puli aplikacji w IIS.

Przejdź do Menedżera IIS (zakłada to v7+): {]}

  1. Pule Aplikacji
  2. Kliknij prawym przyciskiem myszy pulę używaną dla Twojej aplikacji
  3. Wybierz "Recykling", pojawi się okno z napisem " Recykling Warunki "
  4. Sprawdź te ustawienia, ponieważ będą one określić, kiedy do automatycznie wyłącz pulę aplikacji i uruchom ją ponownie.

Jeśli chodzi o ogólną wydajność, możesz spróbować:

  1. dodanie kilku debugujących poleceń, które wypluwają upłynął czas w Twój Metoda Application_Start () lub dowolna inna odpowiednia lokalizacja do wypróbowania żeby złapać to, co trwa najdłużej.
  2. Stwórz całkowicie czysty projekt demo i wdroż go. Zobacz też cierpi na ten sam problem. Jeśli nie spróbuje wprowadzić więcej i więcej twojego prawdziwego kodu, dopóki nie wykryjesz spowolnienia.

Jeśli jesteś naprawdę. stumped # 2 może być najlepszym rozwiązaniem, mimo że będzie to prawdopodobnie najwolniejsza opcja.

 20
Author: Timeout,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-20 07:48:53

Ja też miałem ten sam problem, z powolnym pierwszym ładowaniem asp.net strony mvc, w końcu znalazłem najlepszy sposób na załadowanie strony, wyjątkowo szybko w pierwszym załadowaniu.

Moje rozwiązanie jest dla windows server 2008 r2 i IIS 7.5, ale w górnych wersjach windows Server i upper iis również działają, z kilkoma prostymi różnicami.

Po pierwsze, musisz ustawić startMode puli aplikacji na zawsze uruchomiony, co uniemożliwi uśpienie puli aplikacji po pewnym czasie. (w moim przypadku tylko to krok zmienia moje witryny pierwsze ładowanie z 45-55 sekund na około 8-12 sekund).

W pierwszym kroku nie ma pierwszego żądania dla Twojej witryny, aby wstępnie załadować swoją stronę internetową, potrzebujemy kolejnego kroku, czyli zainstalowania modułu inicjalizacji aplikacji dla iis7.5 z tutaj

W kroku drugim musisz ustawić preloadEnabled = true dla swojej witryny, Ta opcja jest tym, co inicjalizacja aplikacji dodana do ustawień witryny.

Aby uzyskać więcej informacji i jak można ustawić tę opcję proszę zapoznać się z tym wpisem na blogu: http://blogs.iis.net/wadeh/application-initialization-part-2

Po kroku drugim moja strona ładuje się w ciągu zaledwie 1-3 sekund.

 15
Author: mesut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-15 09:07:06

Oprócz tego, co powiedział Jay.. należy wziąć pod uwagę wykorzystanie pamięci puli aplikacji. Jest to szczególnie ważne w przypadku współdzielonych środowisk hostingowych, w których dostawca zazwyczaj odzyskuje pulę aplikacji po osiągnięciu limitu pamięci (a nie w oparciu o czas). Spowoduje to ponownie "ponowne uruchomienie" witryny, powodując początkowy problem z ładowaniem perf.

 0
Author: Simon Whitehead,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 23:23:18

Wygląda na to, że obracające się obrazy są nieco Duże. W mojej przeglądarce ta część ładuje się ostatni. Cała reszta strony ładuje się dość szybko. Możesz pomyśleć o zmianie rozmiaru tych obrazów. Ponadto duże pliki JavaScript mogą powodować pewne spowolnienie podczas początkowego ładowania.

 -1
Author: feradz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 23:26:58

Jest kilka kroków do wdrożenia:

  1. Client Side Cache
  2. wiązanie i Minifikacja
  3. Pamięć Podręczna Po Stronie Serwera
  4. Konfiguracja Auto-Start z menedżerem IIS
 -3
Author: Subhransu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 13:32:29