5.19 Investigating Slow Performance with the Profiler

<< Click to Display Table of Contents >>

Navigation:  5. Administration and Customization >

5.19 Investigating Slow Performance with the Profiler

Administration and Customization

The profiler records how long selected internal operations take. Use it to investigate an action that seems unusually slow, such as opening a window, updating a list or performing a calculation. The report helps support identify which part of the operation needs further investigation.

The profiler measures operations for which timing has been implemented in the program. It is a diagnostic tool; enabling it does not improve performance or automatically identify the cause of a delay.

Record a slow operation

1. Open the project and prepare the action you want to investigate.

2. Open Options > Log, select the checkbox beside Run Profiler and confirm the Options changes.

3. Select Help > Empty Profiler List immediately before the test, when the program is idle. This removes earlier measurements so that the next report is easier to interpret.

4. Perform the slow action once and wait until it has finished. Avoid unrelated actions during the test.

5. Select Help > Profiler Report... to inspect the completed measurements.

6. Save the log as described below before clearing the list or switching the profiler off.

7. When you have finished, return to Options > Log, clear Run Profiler and confirm the changes.

Save the results first. Applying Options with Run Profiler cleared also clears the collected profiler data. The report list is temporary; save any measurements you want to keep before disabling the profiler or closing the project.

Read the Profiler Report

The report lists timed operations in their recorded sequence. The function names are internal program names intended to help support locate the relevant code.

Column: Description

Function: The operation being measured. The L00, L01 and similar prefixes, together with indentation, indicate nesting.

Level: The nesting level. Level 0 is an outer operation; higher levels represent operations called within another timed operation.

Start Time: The date and time at which the operation started.

Time Span: Elapsed time in milliseconds. For example, 2500 means approximately 2.5 seconds.

Look first for a long-running outer operation, then examine the operations nested inside it. A parent's elapsed time includes time spent in its child operations, so do not add all rows together to calculate the total time. Repeated short operations can also account for a noticeable delay.

Elapsed time can include database, network and other waiting time; it is not a measurement of processor usage alone. A large value identifies where time was spent, but does not by itself establish the cause.

Save or print the log

Open Options > Log. Beside Run Profiler, enter a text-file path or use the browse button to choose a location. Then click the Save button beside the path to write the current profiler list to the file. Choosing a filename alone does not save the measurements, and the path does not enable automatic file logging.

Use a new filename for each test if you want to keep separate results. Saving writes the current list and replaces the contents of an existing file. The adjacent Print button opens the profiler report in print preview. The same completed measurements can be viewed through Help > Profiler Report....

Compare tests and send useful results to support

If the problem can be repeated, save separate logs for the first run and a repeated run using the same project and action. The first run may include work that later runs do not need to repeat. Clear the profiler list before each test and keep the test conditions as similar as possible.

When reporting a performance problem, include the saved log, the program version, the project and database involved, the exact steps performed and the approximate delay you experienced. Mention whether the database is local or remote and whether the delay occurs every time or mainly on the first run.

Profiler Run Report

Help > Profiler Run Report... shows the internal timer entries that are still active when the report is opened. This is intended for diagnostic use, normally in consultation with support. It does not contain the completed timing results shown in Profiler Report, and an empty list after an operation has finished is normal.

For ordinary performance investigations, use Profiler Report and the saved text log. Enable the profiler only for the investigation, since collecting measurements adds some overhead and the list grows as further actions are recorded.