Loading...
 

Process profiling

Process profiling

Description

This app controls the profiling of processes, i.e. of any InstantView® code that can be executed. The profiling allows the following to be examined

  • where time remains in detail
  • which code is executed for an operation
  • which messages are triggered and which messages trigger them

Functionality

Toolbar
Symbol Description
 open.png Loading a protocol file
A dialog box opens in which a log file can be selected. This is then analysed.
 go.png Start profiling
Before you start, you must select a log file in which the profiling log is stored. This file will be in XML format and should have the extension .xml. Afterwards all actions will be recorded, depending on the level of detail! The level of detail cannot be changed afterwards.
Profiling can be stopped by pressing the red stop button.
 stopsign.png End profiling
The log file is completed and then analyzed.

Fields
Field Description
Profile Level Before profiling, set the level of detail. The more detailed the protocol is, the larger it will be and the more time will be needed for evaluation.
: Messages and macros All triggered messages and called macros
Statements All statements (IV commands)
: C++ functions All C++ functions (usually model functions)
: Database operations All database operations (transactions, read and write operations)
Evaluation The records from the log file are analysed and graphically displayed in a tree. For this analysis, the level of detail can be restricted in order to keep the tree clear:
: Messages CURRENT, NON_CURRENT
and ignore INITIALIZE
These messages are skipped and not displayed in the tree
Ignore statements All individual commands are skipped, i.e. only messages, macros and database operations remain
Ignore 'Define Start and end of a macro are skipped; useful if all statements are displayed, because then the display of the individual macros is usually redundant (exception: if macros are called when displayed in a ListView, for example)
: Ignore C++ functions Profile data via C++ functions are skipped
Ignore database operations (self-explanatory)

Buttons
button Description
Update Re-display the tree and lists with the settings for the evaluation
New Profiler Open new profiler window. You can load another profiler file to compare two profiles.
Load Profiler file see
Start profiling see
Stop profiling see


Depending on the scope of the protocol and the restrictions made above, the analysis may take some time. The analysis can of course be aborted (depending on what is set in the system, e.g. with Ctrl-F12).

A cluster analysis can also be carried out to get the jumble of data under control.

Tree

 Profiling3.png

In this example, a bill of material was exploded. The analysis was limited to messages and macros. Some examples should help to interpret the tree:

  • The whole process took about 30 seconds (line 1).
  • The yes/no query lasted 1.3 seconds - during this time the system waited for the user to reply (third message).
  • BATCH_ITEM_DISPOSITION lasted about 15 seconds in total. These are mainly distributed between the macro 'FillHiddenList' (approx. 6 seconds) and PROCESS_ITEM_DEMAND (approx. 8 seconds).

How is the duration calculated? The duration is the time that elapsed between the beginning of the statement in question and the beginning of the next statement. If 'CleanUp' takes two seconds, this means that two seconds have passed from the start of 'CleanUp' to the start of the next command. It is not known exactly how much time 'CleanUp' took, only how much time passed until the next statement! But 'CleanUp' takes much less time - the rest of the time was spent waiting for user input:

Time index Statement Explanation
1 s CleanUp command takes only a few milliseconds to execute
? - Waiting for a user input here
3 s Dup

As a rule, this need not be taken into account. In the case of unusually time-consuming statements, however, it should not be forgotten that there may have been a wait for input directly after the statement.

Related topics


Technical documentation

Profiler App

Module name

profilingEdit.app

Classes

CX_LINK_TXN

Security

In addition to restricting access rights via the class and its data fields, the module can be restricted in its use via some of the received messages.

Received messages
Message Parameters Function Security
EDIT_PROFILING Opens the list window

Sent messages
Message Parameters Function Receiver module
None

Operational business