Chciałbym uchwycić czas trafienia, czas przetwarzania, zużycie pamięci i czas odpowiedzi na żądania w aplikacji ASP.NET MVC.Jak analizować wydajność żądań w aplikacji ASP.NET MVC?
Czy istnieje sposób lub narzędzie do wykonania tej czynności?
Chciałbym uchwycić czas trafienia, czas przetwarzania, zużycie pamięci i czas odpowiedzi na żądania w aplikacji ASP.NET MVC.Jak analizować wydajność żądań w aplikacji ASP.NET MVC?
Czy istnieje sposób lub narzędzie do wykonania tej czynności?
Sprawdź miniprofiler , opracowany przez zespół stackoverflow
http://code.google.com/p/mvc-mini-profiler/
Pomaga to zrobić analizę. Dostępny jest pakiet pacingu nuget, który możesz wykorzystać do dodania go do swojego projektu.
Scott napisał post o tym, jak tego użyć.
Można również przejrzeć Glimpse.
Istnieją produkty komercyjne do tworzenia profili pamięci i wydajności, takie jak telerik just trace. Można pobrać ich wersję testową i używać
Nie za darmo, ale to jest naprawdę dobry:
http://www.jetbrains.com/profiler/
dotTrace to rodzina wydajności i pamięci profilowania dla aplikacji .NET.
Nasze najnowsze wydanie dotTrace 5.2 Performance pomaga programistom .NET szybko znaleźć wąskie gardła wydajności i zoptymalizować ich aplikacje.
To jest dobre, do użytku lokalnego, ale jeśli musisz sprawdzić wydajność na stronie klienta, sprawy stają się znacznie bardziej skomplikowane, a miniprofiler Shyju mówi o tym, jest bardzo przydatny w tym przypadku. – Squazz
Możesz stworzyć własny mały test testu wydajności. Jest to ze strony 670 książki Stevena Sandersona, Pro Asp.Net MVC 2 Framework:
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);
}
};
}
}
Następnie dodać do pliku web.config:
<add name="PerfModule" type="Namespace.PerformanceMonitorModule, AssemblyName"/>
Scott ma również [post] (http://www.hanselman.com/blog/IfYoureNotUsingGlimpseWithASPNETForDebuggingAndProfilingYoureMissingOut.aspx) na temat Glimpse, ok, co myślisz na temat ** min profiler vs glimpse **, które należy wykorzystać podczas profilowania witryny zakupów online? – stom