Some user (including myself in one of the last versions of RXT&T) say that using rxqueue /CLEAR to flush the REXX queue is significantly faster than flushing the queue with LINEIN or PULL if there are a lot of entries in the queue.
Well, I've done some tests and in my tests, the PULL statement was always faster. But you may use the code below to test this behaviour on your PC.
/* program to test the speed of flushing the REXX queue */
/* init the variables */
queueThreshold = 1000
queueLines = 1000
queueLineLength = 100
do forever
call LineOut , "Enter EXIT on any question to exit the program"
call CharOut , " Enter the queue threshold ("""" for " || ,
queueThreshold || "): "
userInput = translate( lineIn() )
if userInput = "EXIT" then
exit
if userInput <> "" then
queueThreshold = userInput
call CharOut , " Enter the no. of lines for the queue ("""" for " || ,
queueLines || "): "
userInput = translate( lineIn() )
if userInput = "EXIT" then
exit
if userInput <> "" then
queueLines = userInput
call CharOut , " Enter the length for the lines in the queue " || ,
"("""" for " || queueLineLength || "): "
userInput = translate( lineIn() )
if userInput = "EXIT" then
exit
if userInput <> "" then
queueLineLength = userInput
/* fill the queue */
call CharOut , " Now filling the queue with " || queueLines || ,
" lines with " || queueLineLength || " characters ..."
do i = 1 to queueLines
push copies( "X", queueLineLength )
end /* do i = 1 to queueLines */
call LineOut , " done."
call LineOut , " There are now " || queued() || " lines in the queue."
call CharOut , " Now flushing the queue ..."
call time "R"
call FlushQueue
call LineOut , " done. Time used: " || time("E")
end /* do forever */
exit
/* ------------------------------------------------------------------ */
/* function: flush the default REXX queue */
/* */
/* call: FlushQueue */
/* */
/* returns: nothing */
/* */
/* */
FlushQueue:
queueCount = queued()
if queueCount >= queueThreshold then
do
call LineOut , " Using rxqueue ..."
ADDRESS "CMD" "RXQUEUE /CLEAR"
end /* if */
else
do
call LineOut , " Using parse pull ..."
do i = 1 to queueCount
parse pull
end /* do i = 1 to queueCount */
end /* else */
return