I am having problems clarifying the results from the Profiler.
The ACUCOBOL-GT profiler is a sampling profiler, which means that it wakes up at regular intervals, and attempts to figure out what is executing at that moment. As such, the numbers reported are very rough estimates. And we have found that paragraphs with only CALL statements are not particularily good for such sampling.
ECN 3441 offers more information about profiling, in particular a configuration variable that may allow more accurate profiling in some situations.
SUBJECT: Profiling COBOL on Windows
Change Number: ECN-3441
Type of Change: Enhancement
New Version: 8.0.0
Machines Affected: Windows
Known Versions Affected: All with profiling
DESCRIPTION of problem or enhancement:
The method we used to set a periodic timer on Windows (in order to profile COBOL programs) seems to return inconsistent results. A new method of profiling is now available via a configuration option.
INSTRUCTIONS for use:
There is a new config variable PROFILE-TYPE, which can take the values ASYNCH or COUNTER. When set to the default value of ASYNCH, the runtime does profiling the way it historically has.
When set to the value COUNTER, the runtime uses a new method of profiling which seems to give more accurate results for Windows. However, COBOL programs must be compiled with -Gd as well as -Gs in order to take advantage of this new method. This is because the new method uses the debugger to do its counting.
Note that this new method is also available on UNIX, and can be used if profiling your COBOL results in a message similar to "profile timer expired".