MVC 迷你性能分析器 "duration" vs "with children"



我真的很喜欢这个工具,但是我还没有找到任何指导方针来帮助解释迷你分析器的结果。我似乎每个操作方法都有一个可扩展的标签,我可以清楚地计算出手动创建的分析器步骤的持续时间,但我无法直观地(或在谷歌的帮助下)计算出"持续时间"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语句包装它们,否则两者的报告是相同的。

最新更新