2012-07-23 14 views
0

我有一個動作如下,我想要跟蹤的執行時間,以消除延遲行動之前退出:獲取執行時間只是在asp.net MVC

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完成執行需要多長時間?換句話說,就在最後的}

我把時間寫到日誌中,但是在結束時間寫入日誌和}之後有延遲。帶寬不是問題,因爲我不像你所看到的那樣回報太多。

回答

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) 
{ 
}