2012-09-19 3 views
5

enter image description hereAnfänger Profilieren Qn - ASP .NET MVC + Mini-Profiler + Chrome Developer Tools

Zwei Abschnitte oben hervorgehoben.


1. - Mini-Profiler sagt mir, wie viel Zeit die Ausführung eines Controller/Aktion nimmt (so genannte über Ajax)

87ms


2. - Chrome Web Inspector sagen mir, wie viel Zeit die gleiche Ajax-Anfrage dauert, um zu vervollständigen

535 ms

Mit Blick, ich dachte, dass die Ausführung der anderen Lebenszyklus-Ereignisse (Basis-Controller/Filter) dauerte ~ 22ms.

Suchen Sie nach Anleitung, um herauszufinden, wo der Rest der Zeit läuft.

Danke.


bearbeiten

Diese fast konsistent ist (Varianz ~ 10 - 20 ms in beiden Werten - Mini-Profiler und Chrome Inspector).

Diese Ergebnisse sind für eine Online-Anforderung gegen einen Produktionsserver (VPS) mit IIS 7.5. Wenn diese Zahlen auf einem Dev-Computer gemessen werden (localhost, auf dem IIS express ausgeführt wird), sind die Unterschiede in den Ergebnissen von Mini-Profiler und Chrome Inspector nicht so signifikant.

+1

ist das konsistent? geschieht dies, wenn Sie direkt gegen IIS im Gegensatz zu IIS Express oder vs Web-Server laufen? –

+0

Edit ... – Sameet

Antwort

4

Da diese Anforderungen für eine Online-Ressource gelten, müssen Sie die Latenz berücksichtigen.

Zum Beispiel diese nehmen:

image

Server Es ist nur 118ms, aber der DNS-Lookup 598ms dauert, nimmt Anschluss eines weiteren 205ms und die Antwort kommt nur zurück + 1173ms, nachdem ich die Seite besucht. Schließlich beginnt das DOM nur 1,27 Sekunden zu rendern.

Die Server-Bits berücksichtigen nur die Zeit, die auf dem Server in Ihrer App verbracht wird.

Sie müssen hinzufügen.

  1. Zeit dauert es, DNS aufzulösen.
  2. Zeit dauert es eine Verbindung (wenn keine Keep-Alive vorhanden ist)

[Wartezeit]

  1. Zeit es braucht für die
  2. Overhead auf die Ressource zu fragen das TCP-Paket zu senden Webserver/Proxy-Frontend
  3. Serverzeit (die hellrote Nummer)
  4. Zeit, bis das erste TCP-Paket seinen Weg zurück zu Ihnen findet.

[/ Wartezeit]

  1. Zeit es braucht, um den Rest der Pakete Sie den Weg zurück zu finden. (Lesen Sie über TCP Staus Fenster)
  2. Zeit es braucht, um den Browser das Zeug zu analysieren es wird zurück
  3. Zeit es es

machen nimmt (und dann gibt es die gegenseitige Abhängigkeit von JavaScript und CSS, die ich bin hier nicht zu berühren)

+0

hinzugefügt Wie finde ich die Domain-Lookup- und Connect-Dauer für meinen Ajax-Anruf? Diese Werte sind für den Aufruf nicht über Mini-Profiler sichtbar. – Sameet

+0

bis http://www.w3.org/TR/2011/WD-resource-timing-20110524/ ist in Webbrowsern, feinkörnige Daten ist nicht möglich. Sie können das nur von firebug oder chrome timeline, etc. bekommen. –

+0

Firebug sagt mir, dass DNS Lookup und Connecting keine Zeit brauchen. Die ganze Zeit ist Warten verbracht. Bedeutet das, dass die ganze Zeit "auf dem Draht" ist? Wenn es wie erwähnt auch etwas "Overhead" -Zeit auf dem Webserver gibt, gibt es vielleicht eine Möglichkeit, genau herauszufinden, wohin es geht. – Sameet