3

在 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?

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

4

1 回答 1

4

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

@{
    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()方法仅返回一个Timing对象,该对象记录其释放时的持续时间 - 尽管有点 hacky,但该Timing对象的属性仍然可以访问。

如果您想了解更多信息,您可以随时遍历MiniProfiler.Rootand its Children,尽管我从未在探查器运行时这样做(即.Stop()尚未调用)。

于 2013-08-22T06:12:58.827 回答