【问题标题】:dotTrace: Who's calling my method?dotTrace:谁在调用我的方法?
【发布时间】:2016-05-17 09:32:59
【问题描述】:

我正在使用 dotTrace 来分析存在一些性能问题的编译器。作为编译器,调用堆栈是高度递归的,调用树视图中的折叠往往会使事情变得更加混乱。

当我按 Own Time 对 Plain List 视图进行排序时,我发现某种方法正在使用大量的运行时间。查看代码,我无能为力使该方法更快,但我相信添加一些记忆可以使它变得几乎不需要经常调用它。问题是,我花了很长时间才弄清楚在哪里添加它。

当您在“普通列表”视图的顶部窗格中单击一个方法时,它会在底部窗格中显示该方法调用的方法,这很有用,但据我所知,它不会为您提供哪些方法正在调用此方法的更多有用信息。有什么方法可以获取这方面的统计信息,所以我知道在哪里可以重点添加 memoization?

【问题讨论】:

    标签: c# .net jetbrains-ide dottrace


    【解决方案1】:

    All Calls 选项卡的简单列表视图中,只需右键单击您的方法并选择Open Current Method Instance(或选择方法并按CTRL+T)。这会在 dotTrace 中为您的方法打开一个新选项卡。

    在这个新选项卡中,单击左侧的Backtrace 视图以查看对该方法的所有调用。

    【讨论】:

    • 太棒了,谢谢!它表明 96% 的电话来自一个特定的地方,所以现在我知道应该关注哪里...
    • 添加memoization后,整个编译周期的运行时间减少了50%以上,再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-02-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多