Pour le processus de travail, vous pouvez lire programme Process -> Temps écoulé de la perf correspondant. counter (1) ou directement à partir de l'espace de noms System.Diagnostics.Process; Pour le AppDomain, vous pouvez définir une variable au niveau de l'application au démarrage pour servir de référence et la mesurer manuellement.
Scott Mitchell a en fait quelques bons posts à ce sujet qui sont encore pertinents 8 ans plus tard, croyez-le ou non (2). Fonctionnant sur Cassini (Vista, VS 2008), je vois un système précis en temps avec:
TimeSpan.FromMilliseconds(Environment.TickCount)
... et processus/AppDomain avec une précision d'temps avec ces:
foreach (Process p in Process.GetProcessesByName("WebDev.WebServer"))
{
Response.Write(DateTime.Now.Subtract(p.StartTime).ToString() + "<br/>");
}
Response.Write(DateTime.Now.Subtract((DateTime)Application["StartTime"]).ToString());
Je suis également en mesure d'obtenir le bon PerfomanceCounter, mais ne peut pas sembler lire la valeur correcte (toujours égale à zéro, sous ma configuration):
Response.Write(new PerformanceCounter("Process", "Elapsed Time", "WebDev.WebServer").NextValue() + "<br/>");
articles de Scott sont definitel y vaut une lecture - il y a une richesse d'informations dans ProcessInfo et ProcessModelInfo (ex. ProcessModelInfo.GetHistory), mais malheureusement, ce n'est pas disponible sur Cassini:
métriques de processus ne sont disponibles que lorsque le modèle de processus ASP.NET est activée. Lors de l'exécution sur les versions de IIS 6 ou plus récent dans le processus d'exploitation en mode d'isolation, cette fonctionnalité n'est pas prise en charge .
MISE À JOUR: grande explication de la façon de lire le compteur correctement pour éviter le zéro NextValue(): http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx
HTH
(1) https://serverfault.com/questions/90927/lifetime-of-iis-worker-process-or-appdomai
(2) http://www.4guysfromrolla.com/articles/041002-1.aspx