Initial load von ALLEN Seiten langsam nach bauen

Nach dem Aufbau einer MVC-Anwendung, die ich gewohnt bin, erlebt eine langsame Ladezeit für den ersten web-Seite zugegriffen wird, und ich weiß, warum dies geschieht, aber ich bin auch zu bemerken, dass die Ladezeit ist zu langsam für den ersten Zugriff jeder einzelnen web-Seite.

Als Beispiel sind hier die Ladezeiten für meine home page unter verschiedenen Bedingungen. Die Homepage macht keinen Datenbank-Aufrufe:

  • Integrierte Projekt geladen und hoffe, dass die Seite (erste web-site getroffen und erste-Homepage hit): 10.31 sec (voraussichtlich)
  • Integrierte Projekt -, Kontakt-Seite geladen (zuerst die web-site getroffen), und dann geladen Startseite (erste Seite Startseite hit): 757 ms (nicht erwartet)
  • Alle nachfolgenden Ladezeiten für die Startseite (2., 3., 4., usw. Startseite hits): 4 ms (voraussichtlich)

Habe ich reproduziert diese gleiche Ergebnisse für alle Webseiten, nicht nur auf der Startseite. I. e., wenn Sie ersetzen Sie „home-Seite“ mit „über uns Seite“ und „Kontakt-Seite“ mit „faq-Seite“ die Ladezeiten werden fast genau das gleiche wie oben.

Diese Nummer sind für meine lokale Umgebung, und wenn Schiebe ich mein Projekt in die Produktionsumgebung, Sie explodieren, und das erste laden von jeder Seite Dutzende von Sekunden.

Was interessant ist, ist dass ich kann mich nur noch erinnern, diese beginnt zu passieren, vor ein paar Tagen. Für das Letzte einige Monate, von was ich mich erinnern kann, die erste web-site wurde die Last immer langsam, aber nach, dass, alle Seiten laden sehr schnell auf Ihren ersten laden.

Was die Ursache für das langsame anfängliche Ladezeit auf jeder Seite?

  • Sind Sie der Bereitstellung auf IIS?
  • Ja, ich bin der Bereitstellung auf IIS. Außerdem läuft die Seite auf https für was es Wert ist.
  • Mit jedem bereitstellen der Application pool recycelt und neu gestartet werden muss. Und vielleicht mit dem initial-laden Ihrer Seiten, Sie werden zwischengespeichert, so dass nachfolgende Aufrufe schneller wäre.
  • Haben Sie jemals die Antwort auf diese? Ich bin in der gleichen situation.
  • Ich machte einen einfachen crawler zu „warm up“ der website. Es ist nur c# – code, die ich manuell ausführen, nach einem rollout, und bevor die Website wieder online,, Wanderungen durch die website-Verzeichnis und öffnet jede Seite in einem browser. Es ist ein Schmerz, aber es funktioniert. Ich bin gesperrt bei Verwendung von IIS 7, da kann ich nicht aktualisieren, unabhängig von der OS, aber die Initialisierung der Anwendung-Funktion in IIS 8 könnte das Problem beheben. Also ich würde sagen schreib eine custom crawler, wenn Sie nicht über IIS 8, und suchen Sie in den app-init-Funktion wenn Sie Internetinformationsdienste (IIS) 8 – wäre daran interessiert zu hören, ob es funktioniert.
InformationsquelleAutor StronglyTyped | 2016-01-15



One Reply
  1. 1

    Den application pool braucht Zeit für den Aufbau der Bibliotheken, bevor Sie Sie weiterverarbeiten. Dies kann beschleunigt werden, indem Sie irgendeine Art von Skript. Es hängt auch davon ab, ob Sie eine website oder eine web-Anwendung-Projekt. Eine website für jede Seite der erste Treffer ist langsam und jeder neue Seite Treffers eine zusätzliche compile-Zeit. Web-application-Projekte sind vorkompilierte sollte wenig schneller, aber die Bibliotheken müssen noch belastet werden. Je mehr Bibliotheken und tools, die Sie haben, die schlechter dies trifft tendenziell.

    Könnten Sie auch auf der Suche nach IIS-Auto-Start-Funktion und installieren Sie es auf Ihrem server können helfen, den Prozess beschleunigen. Von Standard-Anwendungspool wird Herunterfahren bei Inaktivität des Nutzers default-Wert von 1740 Minuten. Sie können auch deaktivieren idle TimeOut durch setzen auf 0 kann helfen, eine Menge.

    Meine beste Wette ist, mit der Initialisierung der Anwendung-plugin, um eine bessere Leistung erhalten
    http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.