2012-10-19 10 views

risposta

11

Controllare il miniprofiler, sviluppato dal team StackOverflow

http://code.google.com/p/mvc-mini-profiler/

Questo vi aiuta a fare un po 'di analisi. È disponibile un pacakge di nuget che puoi utilizzare per aggiungere questo al tuo progetto.

Scott ha scritto un post su come usarlo.

È inoltre possibile esaminare Glimpse.

Ci sono prodotti commerciali per fare memoria e profilazione delle prestazioni come telerik just trace. È possibile scaricare il loro versione di prova e l'uso che

+0

Scott ha anche un [messaggio] (http://www.hanselman.com/blog/IfYoureNotUsingGlimpseWithASPNETForDebuggingAndProfilingYoureMissingOut.aspx) su Glimpse, ok cosa ne pensi su ** min profiler vs glimpse **, da usare quando si profila un sito di shopping online? – stom

2

Non libero, ma è veramente buono:

http://www.jetbrains.com/profiler/

dotTrace è una famiglia di profiler di prestazioni e di memoria per le applicazioni .NET.

La nostra ultima versione, dotTrace 5.2 Performance, aiuta gli sviluppatori .NET a trovare rapidamente i colli di bottiglia delle prestazioni e ottimizzare le loro applicazioni.

+0

Questo è buono, per l'utilizzo locale, ma se si deve controllare le prestazioni su un sito client, le cose diventano molto più complicate, e il miniprofiler di cui parla Shyju è molto utile in quel caso. – Squazz

6

È possibile creare il proprio piccolo monitor di test delle prestazioni. Questo è da pagina 670 del libro di Steven Sanderson, Pro Asp.Net MVC 2 quadro:

public class PerformanceMonitorModule : IHttpModule 
{ 
    public void Dispose() { /* Nothing to do */ } 
    public void Init(HttpApplication context) 
    { 
     context.PreRequestHandlerExecute += delegate(object sender, EventArgs e) 
     { 
      HttpContext requestContext = ((HttpApplication)sender).Context; 
      Stopwatch timer = new Stopwatch(); 
      requestContext.Items["Timer"] = timer; 
      timer.Start(); 
     }; 
     context.PostRequestHandlerExecute += delegate(object sender, EventArgs e) 
     { 
      HttpContext requestContext = ((HttpApplication)sender).Context; 
      Stopwatch timer = (Stopwatch)requestContext.Items["Timer"]; 
      timer.Stop(); 

      if (requestContext.Response.ContentType == "text/html") 
      { 
       double seconds = (double)timer.ElapsedTicks/Stopwatch.Frequency; 
       string result = 
       string.Format("{0:F4} sec ({1:F0} req/sec)", seconds, 1/seconds); 
       requestContext.Response.Write("<hr/>Time taken: " + result); 
      } 
     }; 
    } 
} 

Quindi aggiungere al vostro web.config:

<add name="PerfModule" type="Namespace.PerformanceMonitorModule, AssemblyName"/> 
Problemi correlati