dotTrace 2026.2 Help

折叠调用

调用树 可以通过折叠对分析无意义的调用组来简化。 即系统函数调用链和递归调用链。

折叠系统调用

系统调用是非用户代码的调用,例如调用 System 和 Microsoft 命名空间中的方法。 通常,这些调用会被过滤掉,并以灰色字体显示在 调用树 中。 使用 folding 隐藏系统调用链:

  • 可以折叠的系统调用链会用 未折叠链 图标标记。

  • 已折叠的调用链会用 已折叠链 图标标记。

  • 请注意,您可以将 mark user assemblies 标记为系统程序集。

折叠一组系统调用链

  1. 选择包含系统调用的所需调用链。

  2. 点击 未折叠链 或按 Ctrl+Space 以折叠调用。

展开一组系统调用链

  1. 选择包含系统调用的所需调用链。

  2. 点击 已折叠链 或按 Ctrl+Space 以展开调用。

示例

调用树示例

例如,如果在上述示例中配置了折叠以使所有系统调用必须折叠, 调用树 将如下所示:

UserMethod1
      |  UserMethod2
      |      |  SystemMethod2
      |  已折叠链 SystemMethod1
         |  UserMethod1
         |  UserMethod2
            |  SystemMethod1

折叠递归调用

递归调用栈可能很深且难以分析。 因此,包含多个递归调用的复杂调用栈需要几乎无限的栈滚动。 为了简化此类调用栈的分析,您可以折叠递归调用。 当递归调用链被折叠时,dotTrace 会重新计算此调用树(它汇总了特定方法在所有递归子树中的调用时间)并通过方法签名呈现信息:

  • 递归调用会用 递归调用 图标标记。

  • 已折叠的递归调用会用 递归调用 图标标记。

折叠递归调用

  1. 在 调用树 中选择一个递归函数调用。

  2. 点击 递归调用 以折叠函数调用。

展开递归调用

  1. 在 调用树 中选择一个递归函数调用。

  2. 点击 递归调用 以展开函数调用。

示例

请参考一个示例,以更好地理解 dotTrace Viewer 在递归调用被折叠时如何计算调用时间。

调用树示例

如果在上述示例中,您从调用 AUserMethod1 开始折叠递归调用, 调用树 将如下所示(每个字母代表调用的自身时间)。

递归调用 UserMethod1   A + B + C + D + E + F + G + H + I
      |  UserMethod2 E + G
      |      |  SystemMethod1 G
      |  SystemMethod1 C + H
      |  SystemMethod2 I

2026年 7月 14日