我有一个如下动作,我试图追踪执行时间以消除延迟:
public JsonResult DoSomething(IncidentReportSearchCriteria searchCriteria)
{
//search database with searchCriteria
//get the data, do something with it
//return success in JSON format
return Json(new { success = true });
}
VS2010中是否有任何工具可以找出Action DoSomething完成执行所需的时间?换句话说,就在最后}
我将时间写入日志,但在将结束时间写入日志和}
后会有延迟。带宽不是问题,因为我没有回头,你可以看到。
答案 0 :(得分:1)
您可以创建一个动作过滤器来衡量执行时间。
public class ProfileAttribute: ActionFilterAttribute
{
private StopWatch timer;
public override void OnActionExecuting(ActionExceutingContext filterContext)
{
timer = StopWatch.StartNew();
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
timer.Stop();
filterContext.HttpContext.Response.Write("Action method elapsed time: " + timer.Elapsed.TotalMilliSeconds.ToString());
}
}
[Profile]
public JsonResult DoSomething(IncidentReportSearchCriteria searchCriteria)
{
}