Generating a sequential file with 400001 dates and their attributes to validate the code against an equivalent GNUCOBOL implementation and a GNUCOBOL/C combo implementation.?This is not an apples-to-apples comparison since my MVS 3.8J is running in a Docker container on a Synology DS1618+, and I'm comparing it to natively-compiled GNUCOBOL running on Ryzen 5 3600 and native C with a GNUCOBOL driver. Hercules runs roughly twice as fast on the Ryzen 5 3600 versus DS1618+. The original purpose was not performance, it was validation.
The punchline is that MVT COBOL runs in 30 seconds, GNUCOBOL takes 6 seconds, and the GNUCOBOL/C combination takes 1 second. I'm continuing to use DYNALOAD on MVS. So, very roughly, you can hand-wave a 2:1 ratio between using MVT under all those layers and GNUCOBOL. It really is amazing what you could do in 1972.
MVT COBOL:
NAME SSI SIZE TTR ALIAS-OF AC -- -- -- -ATTRIBUTES -- -- ---
. DIV 2K 000410 000016 00 FO EP0
. DIVMOD 2K 0004E8 00001D 00 FO EP0
. FTL 2K 000520 000612 00 FO EP0
. GTL 2K 000778 00061A 00 FO EP0
. ISLEAP 2K 0005E0 000024 00 FO EP0
. JERM 5K 0012F8 00070D 00 FO EP0
. LTF 2K 000528 000328 00 FO EP0
. LTG 3K 000A98 000411 00 FO EP0
. VALDATE 2K 0005F8 000402 00 FO EP0
**END** 18K 004420 000715 MODIFIED
IEF373I STEP /JERM / START 20192.0011
IEF374I STEP /JERM / STOP 20192.0011 CPU 0MIN 30.45SEC SRB 0MIN 00.25SEC VIRT 52K SYS 180K
**
* 2. Jobstep of job: DEFTLY Stepname: JERM Program name: JERM Executed on 10.07.20 from 00.11.21 to 00.11.52 *
* elapsed time 00:00:30,74 CPU-Identifier: TK4- Page-in: 0 *
* CPU time 00:00:30,70 Virtual Storage used: 52K Page-out: 0 *
* corr. CPU: 00:00:30,70 CPU time has been corrected by 1 / 1,0 multiplier *
* *
* I/O Operation *
* Number of records read via DD * or DD DATA: 0 *
* 183.......0 181.......0 183....3101 DMY.......0 *
* *
* Charge for step (w/o SYSOUT): 51,16 *
**
IEF375I JOB /DEFTLY / START 20192.0011
IEF376I JOB /DEFTLY / STOP 20192.0011 CPU 0MIN 30.46SEC SRB 0MIN 00.25SEC
The file produced is:
+01472-12-09 344 1 -00046774
+01472-12-10 345 2 -00046773
+01472-12-11 346 3 -00046772
+01472-12-12 347 4 -00046771
+01472-12-13 348 5 -00046770
+01472-12-14 349 6 -00046769
+01472-12-15 350 0 -00046768
+01472-12-16 351 1 -00046767
+01472-12-17 352 2 -00046766
+01472-12-18 353 3 -00046765
+01472-12-19 354 4 -00046764
+01472-12-20 355 5 -00046763
+01472-12-21 356 6 -00046762
+01472-12-22 357 0 -00046761
+01472-12-23 358 1 -00046760
+01472-12-24 359 2 -00046759
+01472-12-25 360 3 -00046758
+01472-12-26 361 4 -00046757
...
?