This article describes how to use the ACUCOBOL-GT built-in Profiler to identify processing times of specific program paragraphs so that you can determine if code changes would improve performance in your batch applications.
You have a batch application that currently takes a certain amount of time to complete. You want to determine if there are any coding changes you could make that would significantly reduce the program's processing time.
Use the Profiler to create a report that shows the processing time being spent on each paragraph in your program. Examine those paragraphs where the most time is spent to determine if coding changes could reduce processing times. The Profiler is available in version 7.0.0 or higher of the ACUCOBOL-GT runtime. To use the Profiler, follow these simple steps:
This results in a file called acumon1.xml being created in the program's directory.
This results in a file called acumon.rpt being created in the program's directory.
ACUCOBOL-GT version 7.2.0
Timer interval = 10.029 milliseconds
Profile run on Fri Jul 07 12:11:09 2006, sorted by time
Total user time = 8.010 seconds, system time = 0.046 seconds
Pct Secs Count I/O Program
36.7% 8.35 57927 0 PDM0425
32.8% 7.47 1 38950 TRP140
15.2% 3.46 41947 0 TRA050A
14.2% 3.24 57927 0 TRS130B
0.7% 0.15 2 8 PCM1800
0.3% 0.07 14 15 TRZCG01B
0.0% 0.00 1 0 PCM1520
Tip: If the Timer interval is less than10.000 the results are not useful because your program has been executing for too short a time. We recommend an execution time of 10 seconds or more for the whole chain of programs. This is the reason we do not recommend the use of this module for TP applications, but only for batch applications.
Program results Example:
Pct Secs Count Total Paragraph
52.1% 3.89 41947 17.1% Z70-CALL-TRA050A
40.5% 3.03 38949 13.3% Z10-READ-FTR013A
5.6% 0.42 38948 1.9% B20-PROCESS-ECR
0.5% 0.04 2996 0.2% B20-PROCESS-EO
0.4% 0.03 14 0.1% Z40-CALL-TRZCG01B
0.3% 0.02 1 0.1% A00-MAINLINE
0.3% 0.02 1 0.1% A10-DEBUT-PROG
0.3% 0.02 0 0.1% Z99-END
Here you can see that the application expends most time on paragraphs Z70-CALL-TRA050A and Z10-READ-FTR013A. You would then examine the code in those paragraphs to see if you can improve upon the logic.
If the code is very big you can divide the paragraph and rerun everything, this way you will be able to see more clearly which part of the paragraph is the one that is using most of the time.