我真的很喜欢这个工具,但是我还没有找到任何指导方针来帮助解释迷你分析器的结果。我似乎每个操作方法都有一个可扩展的标签,我可以清楚地计算出手动创建的分析器步骤的持续时间,但我无法直观地(或在谷歌的帮助下)计算出"持续时间"one_answers"与孩子"之间的区别。输入这个问题后,我有了一个猜想:"duration"是否意味着"不包括子节点?"
Duration是被监视代码的执行时间减去所有报告的子代码。MVC迷你分析器使用层次结构来跟踪代码不同路径的计时。该层次结构不是基于函数创建的,而是基于如何记录调用。
这是一个来自项目的示例。有一个页面调用"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.2ms, 与儿童为2222.5ms。"ListService"的持续时间为3ms, 有孩子为807ms。
所以从这些统计数据我们可以确定你是正确的;duration只是执行的代码,不包括报告的子代码。与儿童结合持续时间和儿童时间得到总数。
但是"ProductService"没有任何报告的子节点,它的持续时间和带子节点是相同的,都是400ms。我知道ProductService会调用其他函数,这些函数会调用其他函数。侧写器不会把他们算作孩子,因为它不了解他们。除非用using语句包装它们,否则两者的报告是相同的。