Call Tree view - .NET memory sampling data
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
The Call Tree view displays the function execution paths that were traversed in the profiled application. The root of the tree is the entry point into the application or the component. Each function node lists all the functions that it called and the .NET memory allocation data about those function calls.
The values in the Call Tree view are for the function instances that were called by the parent function in the call tree. Percentage values are calculated by comparing the function instance value to the total number or size of allocations in the profiling run.
Highlight the execution hot path
The Call Tree view can expand and highlight the execution path of the process or function that created the largest or most memory objects. To display the most active path, right-click the process or function, and then click Expand Hot Path.
Set the Call Tree root node
Each process in the profiling run is displayed as a root node. To set the starting node of the Call Tree view to a different node, right-click the node that you want to set as the start node and select Set Root.
When you set the root node, you eliminate all other entries from the view except the subtree of the selected node. You can reset the root node back to the node that you were viewing; right-click in the Call Tree View window and select Reset Root.
Column | Description |
---|---|
Process ID | The process ID (PID) of the profiling run. |
Process Name | The name of the process. |
Module Name | The name of the module that contains the function. |
Module Path | The path of the module that contains the function. |
Source File | The source file that contains the definition for this function. |
Function Name | The fully qualified name of the function. |
Function Line Number | The line number of the start of this function in the source file. |
Function Address | The address of the function. |
Level | The depth of the function in the call tree. |
Inclusive Allocations | The number of objects that were allocated by the instances of this function that were called by the parent function in the call tree. This number includes allocations that were made by child functions. |
Inclusive Allocations % | The percentage of all objects that were created in the profiling run that were inclusive allocations of this function. |
Exclusive Allocations | The number of objects that were allocated by the instances of this function that were called by the parent function in the call tree. This number does not include allocations that were made by child functions. |
Exclusive Allocations % | The percentage of all objects that were created in the profiling run that were exclusive allocations of the function instances that were called by the parent function in the call tree. |
Inclusive Bytes | The number of bytes in memory that were allocated by the instances of this function that were called by the parent function in the call tree. This number includes allocations that were made by child functions. |
Inclusive Bytes % | The percentage of all bytes of memory that were allocated in the profiling run that were inclusive allocations of this function. |
Exclusive Bytes | The number of bytes in memory that were allocated by the instances of this function that were called by the parent function in the call tree. This number does not include allocations that were made by child functions. |
Exclusive Bytes % | The percentage of all bytes of memory that were allocated in the profiling run that were exclusive allocations of this function. |