我想在asp.net mvc5中记录几乎所有操作的执行时间,但基本上用下面的代码执行此操作是正确的方法还是它使项目非常慢?有什么建议吗?
Stopwatch sw = new Stopwatch();
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
sw.Start();
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
sw.Stop();
float f = sw.ElapsedMilliseconds;
base.OnActionExecuted(filterContext);
}
答案 0 :(得分:2)
我可能会将时间存储在适当范围的位置,也许是在请求中。
per request
这样你可以避免使用繁琐的字典,并且你的计时器是OnActionExecuted
。
然后您可以在 var sw = filterContext.HttpContext.Items["timer"] as Stopwatch;
sw.ElapsedMilliseconds...
find . -daystart -type f -mtime 1