TEST

See TEST in the Enterprise COBOL for z/OS® Programming Guide for a full discussion of the TEST option and suboptions including a discussion of performance versus debugging capability tradeoffs.

To summarize the performance tradeoffs of programs compiled with TEST options:
  • NOTEST performs better than TEST(NOEJPD)
  • TEST(NOEJPD) performs significantly better than TEST(EJPD)
TEST(EJPD) enables the JUMPTO and GOTO commands and therefore puts severe restrictions on the amount optimization performed by the compiler. The EJPD suboption limits the compiler to in-statement optimizations to allow the JUMPTO and GOTO commands to work properly.
Note: If you specify TEST(NOEJPD) and a non-zero OPTIMIZE level: The JUMPTO and GOTO commands are not enabled, but you can use JUMPTO and GOTO if you use the SET WARNING OFF command. In this scenario, JUMPTO and GOTO will have unpredictable results.

TEST(NOEJPD) also restricts the optimizer, but much less so than TEST(EJPD). The NOEJPD suboption allows the viewing of data items at statement boundaries and this restricts the optimizer in removing some dead code and dead stores.

The table below shows average execution time performance numbers over a set of IBM® internal performance benchmarks.

The numbers were produced at OPT(1) and OPT(2), using different TEST suboptions. The percentages show the performance degradations of TEST(NOEJPD) or TEST(EJPD) over NOTEST.

Table 1. Performance degradations of TEST(NOEJPD) or TEST(EJPD) over NOTEST
OPT level TEST(NOEJPD) % degradation versus NOTEST TEST(EJPD) % degradation versus NOTEST
OPT(1) 5.8% 20.9%
OPT(2) 11.1% 28.5%

As expected, this demonstrates the much larger impact on performance of TEST(EJPD) versus TEST(NOEJPD).

Related references
TEST (Enterprise COBOL for z/OS Programming Guide)