Function Trace Profiler Tutorial: 2 - Analyzing Profiling Results

Applies to AQTime 8.81, last modified on April 19, 2021

Let’s analyze the Function Trace profiler results.

Switch to the Summary panel. It provides information about system environment settings, profiling options and contains brief profiling results. From these results you can find the worst performing routines, routines that are called most than others, routines that have the longest call stack and routines that have the longest routes:

Function Trace profiler results, Summary Panel

Click the image to enlarge it.

Function Trace profiler results, Summary Panel

Click the image to enlarge it.

Function Trace profiler results, Summary Panel

Click the image to enlarge it.

Other AQTime panels provide more detailed result views. Here is a sample output of the Function Trace profiler:

Function Trace profiler results

Click the image to enlarge it.

Function Trace profiler results

Click the image to enlarge it.

Function Trace profiler results

Click the image to enlarge it.

As you can see, profiling results are organized into categories - Routines and Call Trace - that are shown in the Explorer panel.

Select the Routines category. When this category is selected, the Report panel displays information about routines in the profiled module(s) and the Details panel displays calling routes for the routine that is selected in the Report.

The Report panel columns display the routine name and other attributes, such as module name and hit count:

For more information on available columns, see Function Trace Profiler - Report Panel Columns.

Note that by default the Report panel does not show all available columns. To add columns to the panel, select the Field Chooser from the context menu and then drag the desired column to the panel. See Adding and Removing Columns for more information.

Let’s explore the calling routes for the DoActionB routine. To do this, we should first locate the routine in the Report panel. For this purpose, click somewhere within the Routine Name column of the Report panel and type the routine name (depending on the sample, it is Form1::DoActionB or DoActionB). AQTime will search while you are typing:

The DoActionB routine results

Double-click the DoActionB routine in the Report panel and switch to the Details panel. When the Routines category is selected, this panel displays the list of calling routes for the routine selected in the Report and the contents of each route.

As you can see, the DoActionB routine has two calling routes. They are shown in the Call Routes table of the Details panel. The Route No column displays the route index and the Hit Count column indicates how many times the route was used during the application execution:

DoActionB results in the Details panel

Click the image to enlarge it.

DoActionB results in the Details panel

Click the image to enlarge it.

DoActionB results in the Details panel

Click the image to enlarge it.

To view the sequence of function calls that make up a route, simply select the desired route in the Call Routes list and look at the Call Stack pane (by default, it is on the right of the Call Routes).

DoActionB results in the Details panel

Click the image to enlarge it.

DoActionB results in the Details panel

Click the image to enlarge it.

DoActionB results in the Details panel

Click the image to enlarge it.

The Call Stack table contains information about function calls that lead to the call of the selected routine. the table columns provide information about the routine: class name, source file, source line, module name. The Call No column indicates the order of the call. The topmost row (Call No = 0) corresponds to the selected routine (in our example it is DoActionB). The second row (Call No = 1) corresponds to the routine that called DoActionB (in our example it is DoActionC or Form1::DoActionC).

By default, the Call Stack does not support sorting, so you always see the routines in their call order. You can change the default settings in the Format Columns dialog. To invoke it, right-click somewhere within the Call Stack pane and choose Format Columns from the context menu.

To view source code of the DoActionC routine, simply double-click it in the Call Stack and switch to the Editor panel. Within the Editor, you can easily find the source line holding a call to the DoActionB routine:

The ProflingTest routine code

Click the image to enlarge it.

The ProflingTest routine code

Click the image to enlarge it.

The ProflingTest routine code

Click the image to enlarge it.

At the next step we will learn how to obtain the parameters of method calls.

Prev     Next

See Also

Function Trace Profiler
Analyzing Profiler Results

Highlight search results