Page 1 of 1

Performance impact of TEST parameters

PostPosted: Mon Mar 19, 2018 1:48 pm
by bravedreamer
Hi there,

actually we have activated the compile parameters TEST(NOHOOK,SEPARATE,EJPD),NOOPT in our test-environment for every program that is touched (COBOL compiler 4.2.0, z/os 2.2).
Before placing the program in production we are compiling the code without the parameters.
Obviously this is suboptimal. For one reason, we are putting code in production that is not tested and for the other reason, we are doing work that is not really necessary (recompiling).

So, the question is how big is the performance impact if move the program WITH the test parameters in production?
Is there any improvement if we use a more updated version of the compiler?

Re: Performance impact of TEST parameters

PostPosted: Tue Mar 20, 2018 12:24 am
by prino
You do not put NOOPT programs in production, ever.

Re: Performance impact of TEST parameters

PostPosted: Tue Mar 20, 2018 8:50 pm
by bravedreamer
Okay, thanks for the hint.

Actually we have the compiler version 4.2.0. I've seen that in compiler version 5 IBM has changed some parameter.
I thought that maybe the indication of NOOPT is obsolete.

Re: Performance impact of TEST parameters

PostPosted: Tue Mar 20, 2018 9:58 pm
by Robert Sample
I thought that maybe the indication of NOOPT is obsolete.
Yes and no. NOOPT is deprecated in version 5 of the Enterprise COBOL compiler. HOWEVER, it is replaced by OPTIMIZE(0) which is what is used if you specify NOOPT in this version of the compiler.

Re: Performance impact of TEST parameters

PostPosted: Tue Mar 20, 2018 11:47 pm
by Robert Sample
For performance of Enterprise COBOL 4.2, have you reviewed http://www-01.ibm.com/support/docview.wss?uid=swg27018287&aid=1 yet? If not, it is a good document to read. Page 8 has
Performance considerations using TEST:
|On the average, TEST(HOOK) was 20% slower than NOTEST, with a range of equivalent to 265%
|slower when not producing a CEEDUMP.

|On the average, TEST(HOHOOK) was equivalent to NOTEST when not producing a CEEDUMP.

|On the average, TEST(NOHOOK,NOSEPARATE) resulted in a 339% increase in the object module
|size compared to using NOTEST or TEST(NOHOOK,SEPARATE), with a range of 158% larger to
|545% larger.

|One program with a large data division (about 1 million items) using TEST(NOHOOK) took 330 times
|more CPU time to produce a CEEDUMP with COBOL's formatted variables compared to using
|NOTEST to produce a CEEDUMP without COBOL's formatted variables