Applies to AQTime 8.80, last modified on June 13, 2019

The Function Trace profiler organizes results into two categories: Routines and Call Trace. When the Call Trace category is active, the Report panel contains results for each routine call. Which values are displayed also depends on the counter that was used for profiling.

Columns That Do Not Depend on the Active Counter

Columns (in alphabetical order) Description
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 debug information does not contain info about routine lines. These routines can be profiled only at the routine level.

Unsafe code - AQTime was not able to instrument the routine safely. This typically occurs when the binary code of the routine is intermixed with data areas. See Profiling Routines That Contain Unsafe Code.

No ret instruction - The routine’s binary code does not contain the ret instruction (this may happen if the routine finishes with the jmp instruction). See Profiling Routines That Do Not Have the ret Instruction.

Duplicated code - The routine whose code coincides with code of another routine. To learn more about this, see Profiling Duplicated Code.

Call No The number of a single routine call.
Class Name If the routine is a method, name of the class it belongs to.
Code Type Specifies the routine's code type. The following values are possible:
  • MSIL - Managed-code routine with MSIL (Microsoft Intermediate Language) code.
  • x64 - 64-bit code routine.
  • x86 - Native-code (unmanaged) routine.
  • Pseudo - Pseudo routine that was created by the context. For example, <JIT Compiler>, <Garbage Collector>, <Unknown PInvoke> or <Root>.
  • PInvoke - Native-code routine for which there is a declaration in one of the managed modules and that is called from within unmanaged code.
  • NGen - Managed routine that was compiled by the ngen utility (CLR Native Image Generator) with the /prof argument in its command line. The ngen compilation means the routine was compiled before the application starts.
  • Script - The routine belongs to a script that was profiled along with the host application. See Profiling Scripts - Overview for details.
  • Byte-code - Java routine that was compiled into an intermediate byte-code format. See Profiling Java Applications for details.
Module Name The name of the module which contains the profiled routine.
Parent Name Name of the routine that called the given routine.
Routine Name Name of the routine.
Source File Name of the source file for the method. The values for this column are read from the application’s debug info. If debug info does not contain information on the file name, the column is empty.
Source Line Source file’s line number where the routine’s implementation begins. The values for this column are read from the application’s debug info.
Unit Name Name of the linkage unit containing the routine. This column is used only for unmanaged (native-code) routines.

Columns That Depend on the Active Counter

Counters Columns Description
Elapsed Time,
User Time,
User+Kernel Time
Time Total time spent executing the routine’s code excluding child calls. The sum of all profiled methods appears in the footer of this column.
Time with Children Total time spent on calls to the routine including calls to child routines. The sum for all profiled routines is displayed in the footer of this column.
CPU Cache Misses Misses Total number of cache misses that occurred during execution of the routine’s code excluding child calls. The sum for all profiled routines appears in the footer of this column.
Misses with Children Total number of cache misses that occurred during execution of the routine (including its calls to child methods). The sum for all profiled routines is displayed in the footer of this column.
CPU Mispredicted Branches Branches Total number of branches that were mispredicted during execution of the routine’s code excluding child calls. The sum for all profiled routines appears in the footer of this column.
Branches with Children Total number of branches that were mispredicted during execution of the routine (including mispredictions in child methods). The sum for all profiled routines is displayed in the footer of this column.
Hard Memory Page Faults,
Soft Memory Page Faults,
All Memory Page Faults
Faults Total number of page faults that occurred during execution of the routine’s code (child calls are excluded). The sum for all profiled routines appears in the footer of this column.
Faults with Children Total number of page faults that occurred during execution of the routine (including page faults that occurred in child methods). The sum for all profiled routines is displayed in the footer of this column.
Split Load Replays,
Split Store Replays,
Blocked Store Forwards Replays
Replays Total number of replays that occurred during execution of the routine’s code (child calls are excluded). The sum for all profiled routines appears in the footer of this column.
Replays with Children Total number of replays that occurred during execution of the routine (including replays that occurred in child methods). The sum for all profiled routines is displayed in the footer of this column.
64K Aliasing Conflicts Conflicts Total number of aliasing conflicts that occurred during execution of the routine (including conflicts that occurred in child methods). The sum for all profiled routines is displayed in the footer of this column.
Conflicts with Children Total number of aliasing conflicts that occurred during execution of the routine (including conflicts that occurred in child methods). The sum for all profiled routines is displayed in the footer of this column.
Context Switches Switches Total number of context switches that occurred during execution of the routine’s code (child calls are excluded). The sum for all profiled routines appears in the footer of this column.
Switches with Children Total number of context switches that occurred during execution of the routine (including switches that occurred in child methods). The sum for all profiled routines is displayed in the footer of this column.

Additional information about routines chosen in the Report panel is shown in the Details, Call Tree and Call Graph panels. Information displayed in the Call Tree and Call Graph panels help you trace the routine call hierarchy, whereas the Detail panel displays exact parameters passed to the selected routine. See column descriptions in the Call Trace Category topic.

See Also

Function Trace Profiler - Overview
Call Trace Category
Arranging Columns, Lines and Panels

Highlight search results