我非常喜欢这个工具,但是我找不到任何指导来帮助解释迷你探查器的结果。我似乎每个动作方法都有一个可扩展的标签,我可以清楚地弄清楚我手动创建的探查器步骤的持续时间,但我不能直观地(或在谷歌的帮助下)找出“持续时间”和“与孩子“。打字这个问题我想出了一个猜测:“持续时间”是否意味着“排除孩子?”
答案 0 :(得分:4)
持续时间是受监控代码的执行时间减去任何报告的子项。 MVC Mini Profiler使用层次结构来跟踪不同代码路径的时序。该层次结构不是基于函数创建的,而是根据您记录调用的方式创建的。
以下是项目的示例示例。有一个页面调用“ListService”,它执行“getList”,然后执行“FilListWithOptions”,依此类推。
http://www.temppage.com:80/something.aspx
ListService
getList
FillListWithOptions
QtyBreakPrices
FillProductDataWithOptions
GetProducts
ProductService
这些不必是单独的函数,只是嵌套在监视代码中的嵌套代码:
using (profiler.Step("ListService"))
{
using (profiler.Step("getList"))
{ // something more interesting here
}
using (profiler.Step("FillListWithOptions"))
{ // and here
}
}
using (profiler.Step("ProductService"))
{
// blah
}
http://www.temppage.com:80/something.aspx的持续时间可能是615.2毫秒,带孩子的 是2222.5毫秒。 “ListService”的持续时间为3ms,带有子项为807ms。
因此,根据这些统计数据,我们可以确定您是正确的; 持续时间仅是执行的代码,不包括已报告的子代。 有孩子结合持续时间和孩子时间来获得总数。
但是“ProductService”没有任何报告的孩子,持续时间和带孩子在400ms时是相同的。我知道ProductService会调用其他调用其他函数的函数。分析器不会将它们视为子项,因为它不知道它们。除非用using语句包装它们,否则它会报告相同的情况。