Telerik® JustTrace™ by Progress

The Bottlenecks view shows methods that may significantly reduce the performance of your program.

How it works and what to look for

The analysis takes all the methods with high percentage of the thread’s total time. Then it gets only these, which are called from more than one unique parent method (fan-in). This means, methods which are only delegating work won`t be shown (for example: program entry points). Having this, you can analyze their callers and the portion of total time each of them is responsible for. Combined with the Hot Spots view, this analysis gives you a good idea of which methods deserve your attention and will benefit substantially from optimizing.

Note

If these functions are from BCL or CLR, you may browse their caller tree and see if you can optimize their callers instead.

To see the bottlenecks in the All Methods List, enable them by pressing the Bottlenecks button (bottleneck button) in the ribbon. Then, you will be able to distinguish them by the icon in the method list: bottleneck icon

Getting started with the Bottlenecks view

The context menu contains the following commands:

  • Signatures - this option is used to control whether to display the parameters of each function in the Name column. You can switch it off to reduce the amount of text on the screen.
  • Find in Root Call Tree - activates the Call Tree view and shows the first occurrence of the method. You can use the buttons of the navigation toolbar to locate all other calls to this method in the call tree.
  • Merge All Calls in New View - opens a new view and merges all calls to the selected function in the entire process. This is helpful if you want to investigate how much total time it took, which functions it called and how the time spent in it is distributed among its callees, regardless of a particular call site.
  • Show Caller Tree - opens a new Caller Tree view with all callers of the selected function presented as child nodes - a tree of callers. This can help you find where exactly it has been called.
  • Show Just My Code - toggles the user code filter for this node. When turned off all non-user code under this node is shown. When on, all non-user code between this node and child user code nodes down the tree is removed and user code child nodes are brought up (hoisted). Hoisted calls are marked with the hoisted call icon.

    Clicking the expand filtered icon next to the node name also toggles filtering. You can control which assemblies are considered user code in the Assembly List view.

  • View Source - activates the Source Code Viewer tab and opens the source file if it is available. If the source is unavailable JustTrace will decompile the class using JustDecompile and will show the generated source code.

Bottlenecks Main View

Each node of the Bottlenecks view contains the following information:

  • Class Name - fully qualified name of the type.
  • Own Time (ms) - total time spent in this method. Percentage is measured against the total running time of the thread.
  • Total Time (ms) - total time spent in this call. Percentage is measured against the total running time of the thread.

See Also