如何阅读MVC Mini Profiler中的步骤时间?

时间:2013-08-21 03:44:51

标签: c# asp.net-mvc performance asp.net-mvc-4 mvc-mini-profiler

在MVC mini profiler中,如何提取自己使用的步骤时间?例如,不仅仅是在左上方的小方框中显示它们,例如,假设我有步骤

using (var step = MiniProfiler.Current.Step("Foo"))
{
    _fooService.Foo();
}

using (var step = MiniProfiler.Current.Step("Bar"))
{
    _barService.Bar();
}

decimal fooTiming = what goes here?
decimal barTiming = what goes here?

如何提取和阅读上述步骤的时间,以便我可以对这些数字做任何我想做的事情?

1 个答案:

答案 0 :(得分:2)

如果您只是想查看单个步骤的信息,那么您可以这样做:

@{
    StackExchange.Profiling.Timing step;
    using (step = (StackExchange.Profiling.Timing)MiniProfiler.Current.Step("Test Step"))
    {
        System.Threading.Thread.Sleep(1000);
    }
    <div>
        @step.Name took @step.DurationMilliseconds ms 
    </div>
}

示例应输出如下内容:

  

测试步骤耗时1000.9毫秒

.Step() method just returns a Timing object记录其处置时的持续时间 - 虽然有点hacky,Timing对象的属性仍可访问。

如果您想了解更多信息,可以随时遍历MiniProfiler.Root及其Children,但我在分析器运行时从未做过(即.Stop()尚未调用)。