0
asp.net mvc5에서 거의 모든 작업의 실행 시간을 기록하고 싶지만 기본적으로 아래 코드로이 작업을 수행하는 것이 올바른 방법입니까? 아니면 프로젝트가 매우 느립니다. 어떠한 제안?사용자 지정 작업 필터를 사용하여 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);
}
이 나에게 좋아 보이는에서 값을 캐스팅 할 수 있습니다, 그것은 확실히 당신의 코드를 느리게하지 않습니다. 당신은 concurency 문제가있을 수 있습니다. 각 요청에 대해 별도의 필터 인스턴스가 만들어 졌는지 확신 할 수 없습니다. 그렇지 않은 경우 여러 요청이있을 경우 잘못된 측정 값을 가질 수 있습니다. 동시성 문제를 피하기 위해 사전이나 컨텍스트 자체에 타이밍을 저장해야 할 수도 있습니다. – Jim
@Jim 동시성 문제를 사전에 예방할 수 있도록 시간을 주셔서 감사합니다. – mayk
요청 당 사용되는 것 같지만 예외가 발생하면 어떻게됩니까? – Legends