我有一个MVC 5 WebAPI应用程序,尝试非常近似地估计每个请求的时间,以查看哪个请求花费了多少时间,并最终优化了最昂贵的请求。
我的代码如下
static public int time;
private DateTime start;
protected void Application_BeginRequest(Object sender, EventArgs e)
{
start = DateTime.Now;
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
time = start.CompareTo(DateTime.Now);
var request = ((System.Web.HttpApplication)sender).Request;
System.Diagnostics.Debug.WriteLine($">> MyServices request {request.Path} {request.QueryString} took {TimeSpan.FromMilliseconds(time)}");
}
但是输出基本上是相同的:
MyServices请求/ MyServices / ZoneBlock / GetZoneBlock contentTypeId = 18&blockName = sliderhautauto_slide2已使用
-00:00:00.0010000
对于任何请求,“时间”都相同(-00:00:00.0010000),这对我来说似乎很奇怪...
PS。
我的应用程序基于.NET 4.5构建,因此不幸的是,像MiniProfiler(。NET 4.6.1分钟)之类的工具无法在我的情况下使用...
答案 0 :(得分:-1)
不要自己写, 该时间将已经在应用程序的日志中(至少在使用标准日志记录设置时)。如果您需要它更易于访问,我喜欢使用miniprofiler。