Removing hooks
One option for increasing the performance of your program is to compile with a minimum of hooks or with no hooks.
- For C programs, compiling with the option
TEST(NOLINE,BLOCK,NOPATH)
causes the compiler to insert a minimum number of hooks while still allowing you to perform tasks at block boundaries. - For COBOL programs, compiling with the following compiler suboptions
creates programs that do not have hooks:
TEST(NONE)
for any release of the Enterprise COBOL for z/OS® Version 3, or COBOL OS/390® & VM, Version 2, compilerTEST(NOHOOK)
for Enterprise COBOL for z/OS Version 4TEST
for Enterprise COBOL for z/OS Version 5
Independent studies show that performance degradation is negligible
because of hook-overhead for PL/I programs. Also, in the event you
need to request an attention interrupt, z/OS Debugger is not
able to regain control without compiled-in hooks. In such a case you
can request an interrupt three times. After the third time, z/OS Debugger is able
to stop program execution and prompt you to enter QUIT
or GO
.
If you enter QUIT
, your z/OS Debugger session
ends. If you enter GO
, control is returned to your
application.
Programs compiled with certain suboptions of the TEST
compiler
option have hooks inserted at compile time. However, if the Dynamic Debug facility
is activated (which is the default, unless altered
by the DYNDEBUG EQAOPTS
command) and the programs
are compiled with certain compilers, the compiled-in hooks are replaced
with runtime hooks. This replacement is done to improve the performance
of z/OS Debugger.
Certain path hook functions are limited when you use the Dynamic Debug facility.
To enable these functions, enter the SET DYNDEBUG OFF
command,
which deactivates the Dynamic Debug facility.
See IBM®
z/OS Debugger Reference and Messages for
a description of these commands.
It is a good idea to examine the benefits of maintaining hooks in light of the performance overhead for that particular program.