Beruflich Dokumente
Kultur Dokumente
1. Overview
This document describes what you need to know in order to profile a Progress 4GL
application. Before we begin, it is important to make one thing very clear: This is an
Unsupported Free Software package. The package consists of the 4GL Application Tool
that came with this document, the hidden feature of the Progress 4GL Client described
in this document, and this document itself. What do we mean by Unsupported Free
Software?
2
Unsupported (Free) Software
Progress Software Corporation
When Profiling is first enabled, Progress will register all active procedures,
assigning them a module identifier; an active procedure is any persistent
procedure or procedure on the Progress procedure call stack. For each active
procedure1, it will also generate listing files (if PROFILER:LISTINGS is True)
and register coverage analysis information (if PROFILER:COVERAGE is True).
Thus, if you want listing files generated (or coverage analysis information
registered), it is a good idea to set PROFILER:LISTINGS (or
PROFILER:COVERAGE) to True before setting PROFILER:ENABLED to True.
As long as Profiling is enabled, Progress will maintain a registry of what
procedures have executed, regardless of whether profiling is turned on or off.
When Profiling is disabled by setting PROFILER:ENABLED to False, Progress
will write accumulated profiling data to the profiler output file and then deallocate the registry of what procedures have executed.
3
Unsupported (Free) Software
Progress Software Corporation
Note that the profiler only generates a debug listing file the first time that
procedure is executed. Therefore, if PROFILER:LISTINGS is False the first time
a procedure is executed, setting it to True at a later time will not cause the profiler
to try to generate the listing file for that procedure. In other words, the profiler
only registers a module (assigns it a unique identifier) the first time it is executed
and the profiler only generates debug listing files for modules that are external
procedures. If PROFILER:LISTINGS is False when a procedure is first executed,
the profiler will never try to generate a debug listing file for that procedure.
The profiler can only attempt to generate debug listing files; it cannot guarantee
the generation of debug listing files. The source files that comprise a procedure
need to be on the PROPATH in order for the profiler to actually generate a debug
listing file. If the profiler cannot generate a debug listing file for a given
procedure, it will simply look as though PROFILER:LISTINGS was False when
that procedure was first executed.
The only way to get a Progress session to re-attempt generating the debug listing
for a procedure is to disable and then re-enable the profiler by setting
PROFILER:ENABLED to False (which causes Progress to de-allocate its profiler
registry of procedures) and then to True.
4
Unsupported (Free) Software
Progress Software Corporation
If TRACING is set to , then the only tracing information that will be generated
will be that generated via the PROFILER:TRACE-FILTER attribute.
As with the TRACE-FILTER patterns, the TRACING entries are utilized by the
Profiler only while the Profiler is analyzing its raw data in preparation for writing
data to the output file (usually during PROFILER:WRITE-DATA()). Thus, in
most cases TRACING entries need only be established sometime before the
Profiler writes the data for the session to its output file. However, the Profiler may
need to do partial analysis on the fly (in the event that the raw data temporary file
gets too large); therefore, it is best to ensure that a TRACING entries are
established before the procedure-name|line-number is executed.
Note that if an entrys procedure-name matches one of the patterns already
specified in TRACE-FILTER, then that TRACING entry is redundant and will not
be used during the write of the output data.
4GL Performance Profiler
5
Unsupported (Free) Software
Progress Software Corporation
The purpose of this method is to allow application developers collect their own
profiler information (such as database statistics) and write it to the profiler output
file. Any user data will be written as the last section of the profiler output file.
Time spent analyzing and writing the profiling data is factored out of any further
profiling.
sh>> sh runprofiler.sh
The window that comes up displays a browse of all the profiling session descriptions that
have been read into the database (the first time you run it, this will be an empty browse).
Click on the Add Session button to import the data from your profiling session.
Importing the data can take a while, especially if you import the debug listing files (its
worth the wait to import the debug listing files).
Select on whether you want to view 10.2B profiler output or prior to 10.2B output.
Then Click on the View Session button to bring up the Session Summary window..
6
Unsupported (Free) Software
Progress Software Corporation
4. Reporting Problems
If you encounter technical problems with the Core Profiling Capabilities, i.e., problems
like those described in the Known Bugs section above, please report them by way of
email to Profiler@Progress.com. As this is unsupported software, do not expect patches
to the commercial product.
If you discover bugs with the Profiling Tool, you may report them to the same email alias,
but do not expect us to fix them and re-distribute the software. We may do that, but there
is no guarantee. You have the source for the tool.
7
Unsupported (Free) Software
Progress Software Corporation