ASP.NET - CONNAÎTRE LE TEMPS D'EXECUTION DE SA PAGE OU DU CHARGEMENT D'UN OBJET

fyrrhom Messages postés 20 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 27 mars 2009 - 13 janv. 2004 à 15:35
cs_morisse Messages postés 7 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 10 août 2006 - 10 août 2006 à 10:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17473-asp-net-connaitre-le-temps-d-execution-de-sa-page-ou-du-chargement-d-un-objet

cs_morisse Messages postés 7 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 10:54
.NET 2 propose une classe tres simple pour ce genre de choses (Stopwatch) dans System.Diagnostics.
http://msdn2.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

Ici un bout de code (C#) qui se passe de commentaire... ou presque

using System.Diagnostics;

public void MyFunction()
{
Stopwatch sw= new Stopwatch();
sw.Start();
////////////////////////
//'Code' a chronometrer
////////////////////////
sw.Stop();

long lngDuration = sw.ElapsedMilliseconds;
}
Gb3n Messages postés 4 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 18 août 2005
18 août 2005 à 16:34
re bonjour,
je tappotais mon rapport de stage quand la solution m'éclata au grand jour (et oui comme dans les films ...). Bète je suis de ne pas y avoir pensé plus tôt tellement est simple la solution:

En faite il suffit de fixer la date de début de l'exécution de la page dans la session lors de l'évènement "Global_PreRequestHandlerExecute". Ainsi nous obtenons le début de la création de la page.
Et la fin de la création de celle ci, permettant tout de même de réécrire un élément sur cette dernière, n'est autre que l'évènement "pre_render".
Donc dans ce dernier évènement on récupère la date de début qui se trouve dans la session que l'on soustrait à "now" et on affiche le tout dans un champ text par exemple.
Certe ceci fausse un peu la vraie valeur car une fois la soustraction faite l'exécution de la page n'est pas réellement terminée mais bon l'affectation d'une valeur dans un champ text prend tellement peu de temps ...

Voili voilou !
bye
Gb3n Messages postés 4 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 18 août 2005
18 août 2005 à 11:06
Bonjour,
Principe fort intéressant mais un problème survient alors de l'utilisation de la collection "session" pour relater le temps d'execution à la page:
l'évenement du global.asax "PostRequestHandlerExecute" se déroule après l'évenement "Page_Load" de la page renvoyée. Ainsi lors du premier chargement (appel du "page_load")la variable de session "TempsExecutionPage" n'existe pas, elle n'existera qu'apres avoir exécuté "PostRequestHandlerExecute", c'est à dire juste après. Deplus ceci engendre un décalage de l'information, on ne connait pas la durée d'execution de la page en cours mais seulement celui de la page précédente.

exemple:

* première requete
-page_load
session.item("TempsExecutionPage") égale à "rien"
donc affichage "rien"
-PostRequestHandlerExecute
session.item("TempsExecutionPage") = 0,32 ms (temps indicatif de chargement de la page de la premiere requete)

* seconde requete
-page_load
session.item("TempsExecutionPage") égale à 0,32 (temps de la premiere requete )
donc affichage 0,32
-PostRequestHandlerExecute
session.item("TempsExecutionPage") = 1.02 ms (temps indicatif de chargement de la page de la seconde requete)

* troisieme requete
-page_load
session.item("TempsExecutionPage") égale à 1.02 (temps de la seconde requete )
donc affichage 1.02
-PostRequestHandlerExecute
session.item("TempsExecutionPage") = 0.62 ms (temps indicatif de chargement de la page de la troisieme requete)

On affiche alors le temps de la page précédente à chaque fois ...

Pour remedier à cela il faudrait un évènement du global.asax qui s'excute juste avant le "pre_render" de la page...
Personnellement je n'ai pas trouvé ...
Domage l'idée était bonne ...
Bye
fyrrhom Messages postés 20 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 27 mars 2009
13 janv. 2004 à 15:35
Bonjour,

je viens de le tester, mais le temps ne s'affiche pas.
Est-ce qu'il y a possibilité d'avoir des exemples de pages dans un zip.
Merci d'avance
Rejoignez-nous