Profiler .NET Memory Allocations View

The Allocations view lists the types that were created during the profiling run. Each type is the root node of a call tree that displays the function execution paths that resulted in the allocations of the type.

The data in a type row displays the total number of objects of the type that were created in the profiling run and the total number of bytes allocated for the objects of that type.

Inclusive and exclusive values for a type are always the same.

The data for a function displays the number of objects created and the number of bytes allocated for objects of the parent type.

The values of a function in the call tree are for instances of the type that were created by instances of the function that were called by the parent function in the call tree.

  • Inclusive values of a function include values for instances of the type that were created by the function or a function called by the function.

  • Exclusive values of a function include values for instances of the type that were created by code in the function body. Objects created in functions called by the function are not included.

Highlighting the Execution Hot Path

You can find the execution path of the call tree that created the most objects of the parent type.

  • To display the most active path, right-click the type or function, and then click Expand Hot Path.

Column

Description

Name

The name of the allocated type or function.

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 type or function.

Module Path

The path of the module that contains the type or function.

Source File

The source file that contains the definition for the function.

Function Line Number

The line number of the start of this function in the source file.

Level

Indicates whether the data is for a type or a function. Only in VSPerfReport command-line reports.

Inclusive Allocations

  • For a function, the total number of objects of the parent type that were created by the function. This number includes objects created in functions that were called by this function.

  • For a type, the total number of instances of that type that were created.

Inclusive Allocations %

  • For a function, the percentage of all objects created in the profiling run that were inclusive allocations of the parent type by the function.

  • For a type, the percentage of the total number of objects that were created in the profiling run that were instances of the type.

Exclusive Allocations

  • For a function, the number of objects that were created when the function was directly executing at the top of the call stack. This number does not include objects created in functions that were called by this function.

  • For a type, the total number of instances of that type that were created.

Exclusive Allocations %

  • For a function, the percentage of all objects created in the profiling run that were exclusive allocations of the parent type by the function.

  • For a type, the percentage of the total number of objects that were created in the profiling run that were instances of the type.

Inclusive Bytes

  • For a function, the number of bytes of memory that were allocated by the function for objects of the parent type. This number includes the memory that was allocated by functions that were called by this function.

  • For a type, the total number of bytes that was allocated in the profiling run for the instances of the type.

Inclusive Bytes %

  • For a function, the percentage of all memory allocated in the profiling run that was exclusive allocations of the parent type by the function.

  • For a type, the percentage of all memory allocated in the profiling run that was allocated for instances of the type.

Exclusive Bytes

  • For a function, the number of bytes of memory that were allocated by the function for objects of the parent type. This number does not include the memory that was allocated by functions that were called by this function.

  • For a type, the total number of bytes that were allocated in the profiling run for the instances of the type.

Exclusive Bytes %

  • For a function, the percentage of all memory allocated in the profiling run that was exclusive allocations of the parent type by the function.

  • For a type, the percentage of all memory allocated in the profiling run that was allocated for instances of the type.

See Also

Tasks

How to: Customize Profiling Tools Report Views