Render Zeit (C#, ASP.NET)
Capior
- sonstiges
0 Frank (no reg)0 Capior0 Frank (no reg)0 Capior0 Frank (no reg)0 Capior
Hallo
Wie krieg ich am einfachsten die Render Zeit für eine Asp.net seite raus? Gibt es ein Objekt?
Oder muss ich mich "mühsam" mit dem ZeitObjekt rumschlagen?
Trace liefert mir mehrere Angaben vom Initialisieren der Seite bis hin zur Ausgabe, doch verstehe ich die einzelnen Werte nicht bzw. weiss ned, was wann wie und wo etc. beginnt ;-)
Danke und tschüss
Capior
Hi,
man kann bei ASP.net ein gewisses "Tracing" anschalten für die Ausgabe, welches dir deine gewünschten Daten liefern soll. Mal kurz ins Blaue geraten, würde ich sagen, dass ist eine Page Directive. Sollte eigentlich in jedem ASP Buch irgendwie drin stehen.
Ciao, Frank
Hi,
man kann bei ASP.net ein gewisses "Tracing" anschalten für die Ausgabe, welches dir deine gewünschten Daten liefern soll. Mal kurz ins Blaue geraten, würde ich sagen, dass ist eine Page Directive. Sollte eigentlich in jedem ASP Buch irgendwie drin stehen.
ok, ja, danke
mein problem ist eher, dass ich die einzelnen werte nicht versteh. es werden mehrer "objekte" gerendert....
doch versthe ich die werte nicht. ein zusammenzählen aller führt doch nicht zum ergebnis!?!
ich werd mich weiterschlau machen, danke auf jeden fall
Ciao, Frank
tschüss
capior
Hi,
was genau verstehst du nicht. Wenn Trace auf "true" gesetzt ist, bekommst du eine Seite mit verschiedenen Bereichen, z.b. <Trace Information> die dir die verschiedenen Fortschritte des gesamten Rendervorganges für dein Page-Objekt auflistet:
siehe auch: ASP.Net Page Life Cycle
<End Render> gibt dann die gesamtdauer des Renderprozesses an also inklusive aller anderen LifeCycle Zustände.
Weiterhin findest du den Control Tree, welcher dir aber nicht viel über die Dauer der einzelnen Render-Zeiten sagt.
Wenn du wirklich jedes Control benchmarken willst: jedes WebControl bietet (erbt) asynchrone Methodenaufrufe für den Beginn und das Ende, z.b. BeginRender(). Diese Methoden kannst du überschreiben und dann darin einen Aufruf an deine eigene Trace-Klasse weiterleiten. Dabei kannst du gern mit DateTime und TimeSpan arbeiten um dir die Totalzahl an Millisekunden etc in deine Trace-Klasse ausgeben zu lassen. Deiner Trace-Klasse kannst du dann einen "Listener" zuordnen, der fortwährend in eine Datei schreibt.
HTH, Ciao, Frank
Hi,
hi
ich hab das problem gelöst.
dein vorschlag gab mir komischerweise ab und zu negative werte aus!?!
naja, egal. so funktionierts:
(am anfang von page_load)
DateTime BeginRendering = DateTime.Now;
DateTime EndRendering;
(am ende von page_laod)
EndRendering = DateTime.Now;
string SpanRendering = Convert.ToString(EndRendering.Subtract(BeginRendering).TotalSeconds);
RenderTime.Text = SpanRendering + " Sekunden";
HTH, Ciao, Frank
danke und tschüss
capior
Hi,
negative Werte? Das würd ich gern gesehen haben, aber macht ja nix.
Statt Convert.ToString() kannst du eigentlich auch direkt die .ToString() Methode anwenden. Bei Referenztypen kann es aber sein, dass dir diese Methode den Type zurückgibt anstatt den gewünschten Wert.
Ob der von dir gewählte Weg dir auch wirklich verläßliche Ergebnisse liefert, bin ich mir jetzt nicht ganz sicher. Ich würde eher die Variante bevorzugen/empfehlen, die BeginInit und EndRender Event-Methoden zu überschreiben und diese Ausgaben dann über eine separate Schnittstelle in eine Textdatei zu schreiben, so dass sie nicht dauernd die Ausgabe verunschönern :-)
Ciao, als denn
Frank
P.S. du willst für deine Bildergalerie immernoch auf MS setzen, obwohl MS sooooo böse[tm] und schlecht ist? ;-)
Hi,
hi
negative Werte? Das würd ich gern gesehen haben, aber macht ja nix.
ich hab auch a bisle komisch auf den bildschirm geschaut...aber..egal ;-)
Statt Convert.ToString() kannst du eigentlich auch direkt die .ToString() Methode anwenden. Bei Referenztypen kann es aber sein, dass dir diese Methode den Type zurückgibt anstatt den gewünschten Wert.
ok, danke.
Ob der von dir gewählte Weg dir auch wirklich verläßliche Ergebnisse liefert, bin ich mir jetzt nicht ganz sicher. Ich würde eher die Variante bevorzugen/empfehlen, die BeginInit und EndRender Event-Methoden zu überschreiben und diese Ausgaben dann über eine separate Schnittstelle in eine Textdatei zu schreiben, so dass sie nicht dauernd die Ausgabe verunschönern :-)
hehe, ok.
werd mich dann mal versuchen.
werde später nochmals posten, sofern ich mit diesem ansatz wiederum neg. werte erhalte.
Ciao, als denn
FrankP.S. du willst für deine Bildergalerie immernoch auf MS setzen, obwohl MS sooooo böse[tm] und schlecht ist? ;-)
klar :-)
nein, ich werde eh nur die ausgabe der daten prgrammieren und da ists meiner ansicht nach egal, ob jetz php oder asp.net zum zuge kommt. ich bin sehr zufrieden mit den features von .net und eigentlich im allgemeinen mit ms......lassen wir das mal so stehen ;-)
was den server betrifft, auf dem die bilder dann liegen, da hab ich kein "mitspracherecht"...er sollte einfach das .net framework unterstützen...
alles wird gut :-)
danke und tschüss
capior