0

我有一个动作如下,我试图追踪执行时间以消除延迟:

 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完成执行需要多长时间?换句话说,就在最后一个}

我将时间写入日志,但在将结束时间写入日志和}. 带宽不是问题,因为我没有像你看到的那样返回太多。

4

1 回答 1

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)
{
}
于 2012-07-23T17:21:31.550 回答