Description of the profiling information

Describes the information about execution time, memory consumption and model extraction, collected after execution of the model.

When execution stops, the information collected about execution time, memory consumption, and model extraction is organized in tabular form in the Profiler tab.

Note:
  1. If the profiler table is empty and the run configuration includes a settings file, first make sure the “Collect profiling information” option is turned on in the Language/General window of the settings editor.

  2. The profiler measures "system time" and not “wall-clock time”. See Processing time vs. user time

  3. The figures shown in the illustrations may be different on your machine.

Each column header is a sort criterion (see Sorting) and there are two icons at the top right of the Profiler tab for the commands Copy contents to clipboard and Customize thresholds. The Description column presents the execution steps in sequential order as a tree. The root item corresponds to the full execution.

Figure 1. Profiling information for the profiler example
Profiler tab for the profiler example

The Description tree

Most categories below the root item include two important kinds of item, as shown in the table below.

Table 1. Execution tree items
Execution steps Notation
Script block execution EXECUTE <block_name>
Data initialization INIT <data_element_name>

Then, for each execution step, the elements listed in the following table are displayed in columns.

Table 2. Profiling information measured for each execution step
Information for each execution step Definition
Time

The total time consumed by the task.

Note that the profiler measures "system time" and not “wall-clock time”.

Percentage of time ... as a proportion of the total time
Peak Memory The maximal memory used to process the OPL problem. See also the Glossary.
Percentage of peak memory ... as a proportion of the total memory
Self time The time used by the task minus the time used by the subtasks...
Percentage of self time ... as a proportion of the total time
Local Memory The memory usage observed by comparing the start and the end of a step. See also the Glossary.
Percentage of local memory ... as a proportion of the total memory
Count The number of times that same node is repeated on this tree level
Nodes The number of nodes in the branch starting at this node

Processing time vs. user time

All figures indicated in the Time column are processing times, not user times. This means that if your computer is executing other tasks at the same time or is paging because it has too much memory to handle, these extra times are not taken into account by the profiler.

In other words, the OPL profiler records the user+kernel time (which Microsoft calls the process time) given the following definitions.

Figures indicated in the processing column Definition
elapsed time The total elapsed (wall-clock) time required for an operation. This includes time spent waiting for I/O, synchronization objects, timers, scheduling, and other delays.
user+kernel time The amount of time executing code in the thread. It does not include time spent waiting for devices or servicing other processes.

Sorting

By default, the Profiler table rows are sorted sequentially in the order of execution, as reflected by the Description tree. However, you can sort the table, in ascending or descending order, on the figures of any column by clicking that column header name.

For example, in Figure 2, the figures in the Peak Memory column are sorted in descending order and as a consequence, the Description tree is no longer displayed sequentially. Compare to Figure 1, which shows the default, sequential order.

Click the Description column header to restore the default order.

Figure 2. Profiler table sorted on the peak memory column (profiler.mod)
Profiler window for the profiler example, sorted

Thresholds

Click the Customize thresholds icon Customize thresholds button at the top right of the Profiler tab to display the sliders.

The Time % threshold and Memory % threshold sliders, at the top of the Output window, enable you to dynamically change the minimum percentage of time or memory above which you want the figures to appear on a blue (time) or pink (memory) background. Compare Figure 3 to Figure 1: more time figures are shown against a blue background when the time threshold is set to 10% and fewer memory figures appear against a pink background when the memory threshold is set to 50%.

Note:

The figures shown in the illustrations may be different on your machine.

Figure 3. Time % threshold set to 10 and memory % threshold set to 50 (profiler.mod)
Profiler window for the profiler example

Copying Profiler contents to a clipboard

Click the Copy contents to clipboard icon at the top right of the Profiler tab to copy the Profiler table and then paste it to a text editor or spreadsheet. The following screen shows the Profiler table in Microsoft Excel.

Copy of the Profiler table in Excel.

The next step consists in Examining the profiling information.