ARSYSPIN and ARSLOAD when loading directly from spool use the SAPI interface.
A CPU savings and performance improvement was made available starting in z/OS V2.1.
In z/OS 2.1 the code was updated to improve overall performance for SAPI
devices. Two new tree structures are being used to improve the
performance of processing SAPI requests. One tree is used to organize the
JOEs based on various characteristics. This new tree is stored in the JES2
checkpoint for use by all members (2.1 and later). The other tree organizes
the SAPI devices waiting for work to process. That tree is maintained in
private JES2 storage. The creation and maintenance of each tree is
controlled by new keywords on the OUTDEF statement. These can be set
at initialization or via operator command. Turning these options on and off
will create and destroy the tree.
The trees are organized based on fixed characteristics that have traditionally
been used to process output groups. These are queue, route code and
OUTDISP. If you are not selecting on these characteristics (or any of the
combinations above), then these tree structures may not be for you. There
is a cost to maintain the trees that could be greater than the benefits
provided by the tree structure. If this is the case in your environment, you
may want to consider restructuring how you select output to take advantage
of the benefits of the tree structure.
Note that if you are selecting held output, the tree structure helps organize
the held output on your system. This may alter the order that output is
processed but it provides significant improvement over the current selection
process. It is still not recommended to select held output due to
performance cost, this change goes a long way to improve that environment.”
Ref: Starting at page 29 of the following SHARE presentation:
https://share.confex.com/share/120/webprogram/Handout/Session13026/JES2%20Performance%20Considerations.pdfRef: JES2 pub
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.hasa300/sapipost.htmRef: JES2 pub
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.hasa300/sapienable.htmA few things of note:
1. You can turn this on and off with the $TOUTDEF operator command.
$DOUTDEF
$HASP836 OUTDEF 107
$HASP836 OUTDEF COPIES=255,DMNDSET=NO,JOENUM=8000,JOEFREE=7088,
$HASP836 JOEWARN=80,OUTTIME=CREATE,PRTYLOW=0,
$HASP836 PRTYHIGH=255,PRTYOUT=NO,PRYORATE=0,SEGLIM=100,
$HASP836 STDFORM=STD,USERSET=NO,JOERBLDQ=NONE,
$HASP836 DSLIMIT=10M,LDEV_OPT=NO,SAPI_OPT=YES,WS_OPT=YES 2. “This can alter the order in which output is presented to the SAPI application”. So when it's enabled arsload/arsyspin might pick files in a different order.
3. "What is even more significant, is the benefit when a device reaches the end of the element to process. In this case, it generally takes longer to discover that there is no work than to discover that there is work."
CMOD development does not have their own benchmark figures, but also doesn't doubt that this works exactly as advertised.
Ed