在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?
如何提取和阅读上述步骤的时间,以便我可以对这些数字做任何我想做的事情?
答案 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()
尚未调用)。