2010-05-12 24 views
7

Ich würde gerne wissen, ob es eine einfache Möglichkeit gibt, die Zeit zu messen, die man braucht, wenn man Enter drückt, bis zu der Zeit wo eine Webseite vollständig angezeigt/geladen wird. Muss ich dafür einen Timer verwenden, oder gibt es bereits vorhandene Funktionen, die in das Webbrowser-Steuerelement (oder das .net-Framework) integriert sind, das ich verpasst habe?Messen Ladezeit einer Webseite (C#)

Danke

Antwort

4

Wenn Sie die ASP.NET-Seite kontrollieren, können Sie Trace aktivieren. Dort erhalten Sie eine Reihe von Informationen über den Seitenlebenszyklus (einschließlich Zeitstempel) und andere nützliche Profilinformationen.

Schalten Sie Spur für eine Seite in der Page Direktive an der Spitze Ihrer aspx-Datei:

<%@ Page Trace="true" %> 

oder dynamisch in Code:

Trace.IsEnabled = true; 

oder global in der App diese in Web-Einstellung .config:

<configuration> 
<system.web> 
    <trace enabled="true" requestLimit="40" localOnly="false"/> 
</system.web> 
</configuration> 

Siehe auch die MSDN documentation für Trace.

+0

Vielen Dank für Ihre Hilfe, Ehrfurcht. Coole Verbindung :) –

+3

Aber das zeigt nur die Zeit bis asp.net mit der Anfrage fertig ist. Sie verpassen die Zeit, die Sie benötigen, um dies an den Browser zu senden und dort zu rendern. –

+0

... haben Sie auch keine Rückmeldung über die Komplexität des DOM.Eine Anfrage wird möglicherweise schnell genug auf dem Server abgeschlossen, aber der Browser ist nicht darauf vorbereitet, all diese DOM-Elemente zu verarbeiten. Der Browser könnte sogar abstürzen, wenn Sie es genug belasten und ich habe diese erste Hand gesehen. Es gibt auch echte Profiling-APIs, die Sie verwenden können. Ich glaube, IE9 hat eine Profiling-API eingeführt, auf die Sie über JavaScript zugreifen können. http://msdn.microsoft.com/en-us/library/ff974378(v=vs.85).aspx#_webperf –

0

Eine einfache Google-Suche auf alle offenbart :)

Timing a Page Load C#

essentialy Sie aufnehmen, nur die Zeit zu Beginn der Page_Load und am Ende und mit ein paar einfache Mathematik arbeiten aus dem Unterschied, gibt es Ihre Ladezeit

+1

Das OP ist nicht in asp.net Land. Er möchte wissen, wie lange es dauert, bis eine Webbrowser-Steuerung eine Seite lädt. –

+0

Missverstanden, faire. – Yoda

5

Firebug (Erweiterung für Firefox) hat ein Timing-Panel, unter der Registerkarte "Net".

+3

Warum der Downvote für etwas, das die Zeit anzeigt, bis die Seite vollständig angezeigt wird? –

3

Fiddler kann alle Webanfragen prüfen und Ihnen die relevanten Zeiten anzeigen.

+2

Jeder Grund für die Drive-by-1? – cjk

1

Dynatrace ist ein ziemlich leistungsfähiges Werkzeug für die Diagnose von Leistungsproblemen auf der Client-Seite.

In Kombination mit Fiddler gibt es den vollständigen Zeitrahmen von der ursprünglichen HTTP Anfrage bis zu dem Moment, in dem das Rendering in webbrowser abgeschlossen ist. Es bietet auch einige automatische Diagnosefunktionen, in denen es den Benutzer über alle hotstops/bottlenecks informiert, die im HTML/Javascript Code gefunden werden.

Bis ich etwas besseres finde, ist diese Anwendung Teil meines Standard-Toolsets, wenn ich Leistungsprobleme untersuchen muss.

0

Sie könnten ein RUM-Tool verwenden, um die Ladezeit zu messen. Diese Methode ist genau, wie es Navigation API Browser verwenden und Zeiten werden aus Sicht der Benutzer gemessen. Hier ist eine einfache Rum-Tool http://gear5.me und eine komplexere: http://newrelic.com