dotTrace 2017.2 Help

Folding Recursive Calls

Recursive call stacks can be deep and difficult to analyze. Thus, complex call stacks with multiple recursive calls require almost infinite stack scrolling. To simplify analysis of such call stacks, you can fold recursive calls. When a chain of recursive calls is folded, dotTrace recalculates this call tree (it summarizes call times of a particular method in all recursive subtrees) and presents information by method signatures.

Recursive calls are marked with the /help/img/dotnet/2017.2/ico_recursive.png icon.

Folded recursive calls are marked with the /help/img/dotnet/2017.2/ico_recursive_collapse.png icon.

To fold a recursive call:

  1. Select a recursive function call in Call Tree.
  2. Click /help/img/dotnet/2017.2/ico_recursive.png to fold the function call.

To unfold a recursive call:

  1. Select a recursive function call in Call Tree.
  2. Click /help/img/dotnet/2017.2/ico_recursive_collapse.png to unfold the function call.

Example

Consider an example for better understanding of how Timeline Viewer calculates calls time when recursive calls are folded.

/help/img/dotnet/2017.2/folded_recursive_calls_example.png

If in the example above you fold recursive calls starting from the call A UserMethod1, Call Tree will look like follows (each letter stands for a call own time).

/help/img/dotnet/2017.2/ico_recursive_collapse.pngUserMethod1 A + B + C + D + E + F + G + H + I
|UserMethod2 E + G
| |SystemMethod1 G
|SystemMethod1 C + H
|SystemMethod2 I

Last modified: 29 August 2017