Open Test Framework  
OTX Profiler

For performance and memory analysis, the OTX runtime provides a simple profiling mechanism. For each executed OTX node, a highly precise timestamp as well as CPU load are written to a profiler file (*.prf).

Note: Writing to the file is runtime-optimized so that it hardly affects the overall execution performance.

Step by Step

Using profiling in the OTF:

  1. Select the profiler tool window
    If necessary, the profiler tool window must be activated in the Display ribbon menu.
  2. Enable profiling
    Set the switch button in the tool window to ON.
  3. Execution
    Select and execute a procedure.
  4. Analysis of the results
    The results are displayed in tabular form in the tool window. They can now be analyzed, see Analysis.

Using profiling in the OTX runtime outside the OTF:

  1. Enable profiling
    Configure the OTX runtime API for profiling, see Profiling.
  2. Execution
    Select and execute a procedure.
  3. Open OTF and load the solution
    In the OTF, the solution used to create the PTX must be loaded; otherwise, the OTX IDs from the profiler file cannot be mapped.
  4. Load the profiler files
    A profiler file (*.prf) must be loaded in the tool window. If there are multiple files, loading one is sufficient. The OTF automatically detects which files belong together.
  5. Analysis of the results
    The results are displayed in tabular form in the tool window. They can now be analyzed, see Analysis.

Note: If the Profiler window is not visible, it must be enabled in the Display menu.

Note: When profiling, the project loaded in the OTF should be identical to the executed project.

Profiler Data

The following data is stored in the profiler file for each executed OTX node:

Measurement Description
OtxId Unique ID for each OTX node
ThreadId Unique ID for each thread
Timestamp Timestamp in microseconds
CPU Load System CPU load in % of the entire system
CPU Load Process CPU load in % of the owner process

Analysis

The following tables are available for profiling analysis. The rows can be sorted by columns to determine, for example, which line was called most frequently or which line took the longest to execute.

  1. Table: All Values
    All executed nodes are listed individually by OtxId. This allows identification of hot spots that can be assigned to a specific node. The values can be displayed for each individual thread or aggregated across all threads, see the Details button.
  2. Table: Sorted by Activity Type
    All nodes of the same type (e.g., ExecuteDiagService) are aggregated into a single row and listed together. This allows identification of hot spots that can be assigned to a specific activity type.

Note: For more detailed analysis, a table can be exported to Excel.