Execution Time view

This view displays the results of profiling sessions so you can quickly learn which functions consume the most CPU time.

The results are presented in a table in which each row provides statistics for one function:
Execution Time view

The columns shown by default provide the essential data of function runtimes and call counts:
The name of the function. The function's share of the thread's total execution time and its parent's name can also be shown, depending on the preference settings, as explained below.
Deep Time
The time it took to execute the function and all of its descendants. This metric is also referred to as Total Function Time. It is the pure realtime interval from when the function started until it ended, which includes its shallow time, the sum of its children's deep times, and all time in which the thread wasn't running while blocked inside of it. If the function was called more than once, this column contains the sum of all runtimes when it was called from a particular stack frame or parent function.

Inside each column entry, on the left, a green bar and percentage value indicate the relative execution time. On the right, another value indicates the absolute execution time.

For Sampling mode, this column isn't used.

Shallow Time
For Function Instrumentation mode, this column is the deep time minus the sum of its children's runtimes. It roughly represents the time spent in this function only. However, it also includes the time for kernel and instrumented library calls and for profiling the code.

For Sampling mode, it's an estimated time, calculated by multiplying an interval time by the count of all samples from this function.

The column entries have a green bar overlaid with relative and absolute execution times, which provide similar information as in the Deep Time column.

The number of times the function was called.
The location in the code where the function can be found.
The filename for the binary.

You can show additional columns or remove default ones through the Preferences dialog, which you can access by clicking the View Menu icon (Icon: Execution Time menu dropdown) in the toolbar and choosing Preferences. The dialog lets you choose which columns are visible, set the navigation history size, set the details shown in the Name column, toggle the display of the green bars and time values, and change the time units:
Setting preferences

You can add the following non-default columns:
The percentage of Deep Time compared to the total time of the root node (i.e., the thread).
The average time spent in the function.
The maximum time spent in the function.
The minimum time spent in the function.
Time Stamp
A time stamp assigned to the function; this represents the last time the function was called.

Toolbar actions

For active sessions, the Execution Time toolbar provides actions including but not limited to:
  • Disable Automatic Refresh (Icon: Disable Automatic Refresh) — Pause the data display in its current state until you unlock it.
  • Refresh (Icon: Refresh Now) — Refresh the data display.
  • Take Snapshot and Watch Difference () — Create a profiling session that is a snapshot of the current data. Later, you can compare the snapshot data with data from a later point in execution, to see how function runtimes and call counts change as the program runs.
  • Show Threads Tree () — Display a graphical representation of the threads and calling functions within your application. This display helps you see exactly where the application spends its time and which functions are most used. You can examine see details down to the lowest function calls.

    Screenshot of Execution Time view showing sampling-based function runtimes in a thread-based tree
    Note: Information about individual threads is not available for postmortem profiling. Instead, only one thread (with all time assigned to it) is displayed.
  • Show Table () — Display a list of functions within your application. This display helps you identify which functions take the longest to complete. In Functions Instrumentation mode, calls to C library functions such as printf() are not displayed.

    Screenshot of Execution Time view showing deep and shallow function runtimes in a thread-based tree