When the Routines Data category is active, the Report panel shows information on routines that can potentially be called in the profiled application. The panel contains the following columns:
Columns (in alphabetical order) | Description |
---|---|
Address | The routine’s address in memory. This column is only used for unmanaged (native-code) routines. The format of the address depends upon the Show Addresses as RVA option. |
Analysis Result | Specifies if the routine was instrumented or not. If the routine was instrumented, this column is empty. Otherwise, the column displays a short description why the routine was not instrumented:
Less than 5 bytes - The routine occupies less than 5 bytes in memory (for 32-bit applications). See Profiling Small Functions. Less than 6 bytes - The routine occupies less than 6 bytes in memory (for 64-bit applications). See Profiling Small Functions. No line info - The routine was added to a line-level area, but the debug information contains no info about routine lines. These routines can be profiled at routine level only. Unsafe code - AQTime was not able to instrument the routine safely. This typically occurs when the routine’s binary code is intermixed with data areas. See Profiling Routines That Have Unsafe Code. No ret instruction - The routine’s binary code does not contain the Duplicated code - The routine whose code coincides with code of another routine. To learn more about this, see Profiling Duplicated Code. |
Box Count | The number of times the routine is boxed in the source. |
Call Count | The number of calls to the routine coded in the source. |
Callee Count | The number of calls to other routines coded in the source of the given routine. |
Class Name | Name of the class to which the given routine belongs. |
Code Size | Size of the routine’s binary code (in bytes). |
Code Type | Type of the routine’s code. The following values are possible:
|
Condition Count | The number of conditional instructions in the routine’s source. |
Cyclomatic Complexity | The number of different and linearly independent paths through the routine’s code from its beginning to the end. For more information on analyzing this metric’s values, see Analyze Routine's Cyclomatic Complexity. |
Data Load/Store | The number of memory handling instructions in the routine’s source. |
Direct Calls | The number of direct calls to other routines performed in the routine’s source. |
Exception Frames | The number of exception frames in the routine’s source. |
Float Instructions | The number of floating point instructions in the routine’s source. |
Indirect Calls | The number of indirect calls to other routines performed in the routine’s source. These are calls to callback functions (when a pointer to a routine is passed somewhere where the routine is actually called) and calls to interface functions. |
Instruction Count | The total number of instructions in the routine’s code. |
Leaf | Specifies whether the routine is leaf or not. Leaf routines are those that do not call other routines. |
Line Count | The number of lines in the routine’s source. |
Local Count | The number of local variables in the routine’s source. |
Local Size | The size of memory (in bytes) occupied by the routine’s local variables. |
Loop Count | The number of loop instructions in the routine’s source. |
MMX Instructions | The number of MMX instructions in the routine’s source. |
Module Name | Name of the executable module where the routine is defined. |
Namespace | Name of the namespace to which the routine’s class belongs. This column is only used for managed routines. |
Parameter Count | The number of parameters that are passed to the routine. |
Parameter Size | The size of memory (in bytes) occupied by parameters that are passed to the routine. |
Platform | The minimal processor configuration at which the routine’s code can be run. This is determined by instructions used in the code. Possible values are Blended (means that the process type is not strictly defined; actually it means any Intel processor starting from Pentium), Pentium II, Pentium III or Pentium IV. |
Routine Name | Name of the given routine. |
Recursive | Specifies whether the routine has recursive calls (i.e. calls to itself). |
Source File | Name of the source file for the routine. If debug info does not contain information on the file name, the column is empty. |
Source Line | The source file’s line number where the routine’s implementation begins.
|
SSE Instructions | The number of SSE instructions in the routine’s source. |
SSE2 Instructions | The number of SSE2 instructions in the routine’s source. |
Stack Frame | Specifies whether a stack frame is created for the given routine. Stack frames make debugging easier but hamper performance because they involve execution of additional code. |
Token | The routine’s CLR token. |
Unbox Count | The number of times the routine is unboxed in the source. |
Unit Name | Name of the compiled linkage unit. This column is used only for unmanaged (native-code) routines. |
Unused Register Count | The number of registers that are not used in the routine’s source. |
Word Overrides | The number of times when registers are used partly, not entirely. Large values of this counter lead to poor performance of the routine. |
See Also
Static Analysis Profiler - Report Panel
Static Analysis Profiler Panels Reference
Static Analysis Profiler Results
Static Analysis Profiler