Re: Rexx performance question

2007-01-18 Thread John P. Hartmann
Gentlemen, 

You're comparing apples and bananas.  EXECOMM and GLOBALV are two distinc
t
namespaces.  Further, there is one GLOBALV set of variables, whereas each

REXX invocation has its own set of variables (and then there is PROCEDURE

EXPOSE).

   j.


Re: Rexx performance question

2007-01-18 Thread Schuh, Richard
John,

I think the original post required a comparison of unlike items. It was
a question of, Is there a faster way to pass environment variables from
one EXEC to another? The method in use was GLOBALV and the poster
wanted to know if there was a more efficient, faster, way to do it. 


Regards, 
Richard Schuh 


-Original Message-
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] On
Behalf Of John P. Hartmann
Sent: Thursday, January 18, 2007 8:24 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Gentlemen, 

You're comparing apples and bananas.  EXECOMM and GLOBALV are two
distinc=
t
namespaces.  Further, there is one GLOBALV set of variables, whereas
each=

REXX invocation has its own set of variables (and then there is
PROCEDURE=

EXPOSE).

   j.


Re: Rexx performance question

2007-01-18 Thread Kris Buelens

And, EXECCOMM must be used by GLOBALV GET and PUT.  Hence there is some
relation performance wise.

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/18, Schuh, Richard [EMAIL PROTECTED]:


John,

I think the original post required a comparison of unlike items. It was
a question of, Is there a faster way to pass environment variables from
one EXEC to another? The method in use was GLOBALV and the poster
wanted to know if there was a more efficient, faster, way to do it.


Regards,
Richard Schuh


-Original Message-
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] On
Behalf Of John P. Hartmann
Sent: Thursday, January 18, 2007 8:24 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Gentlemen,

You're comparing apples and bananas.  EXECOMM and GLOBALV are two
distinc=
t
namespaces.  Further, there is one GLOBALV set of variables, whereas
each=

REXX invocation has its own set of variables (and then there is
PROCEDURE=

EXPOSE).

   j.



Re: Rexx performance question

2007-01-18 Thread Rob van der Heij

On 1/18/07, Kris Buelens [EMAIL PROTECTED] wrote:


And, EXECCOMM must be used by GLOBALV GET and PUT.  Hence there is some
relation performance wise.


Ooh... Sir Kris disagrees with the Piper... ;-)You have any old
passwords I can inherit?

Rob


Re: Rexx performance question

2007-01-18 Thread Kris Buelens

I've lots of things to inherit.  But, even now after this dangerous
adventure, I think I have some chances to survive.

When I rethink my will, I'll think to leave something for you Sir Rob,
Yours truly,
Sir Kris The Guide,
The proud owner of an almost uncountable -and still growing, number of
preciously kept passwords.

2007/1/18, Rob van der Heij [EMAIL PROTECTED]:


On 1/18/07, Kris Buelens [EMAIL PROTECTED] wrote:

 And, EXECCOMM must be used by GLOBALV GET and PUT.  Hence there is some
 relation performance wise.

Ooh... Sir Kris disagrees with the Piper... ;-)You have any old
passwords I can inherit?

Rob



Re: Rexx performance question

2007-01-13 Thread Rob van der Heij

On 1/12/07, Peter Rothman [EMAIL PROTECTED] wrote:


Besides a lot of 'steam lining' I thought I would be 'clever' and changed
the GLOBALVs to 'PIPE var VarName 1 | var VarName'.


The EXECCOMM interface is known to be slow. With GLOBALV you only use
it once to set the variable, with the Pipeline you need 2 for the same
thing. I would expect that to be slow.
Depending on the number of Rexx variables present and involved, you
may gain back some performance using 'rexxvars' to retrieve all
variables and have a 'lookup' stage select the ones to use.

If there's enough variables to copy that this makes a difference, then
I assume they contain the data your subroutine works on. It is often
not hard to make the subroutine in a pipe stage and pass the data
through the pipeline rather than the Rexx variables.

But the most efficient approach is of course to keep the data in the
pipeline entirely.

Rob


Re: Rexx performance question

2007-01-13 Thread Kris Buelens

The GLOBALV solution often also requires two calls to EXECCOMM:
 GLOBALV PUT in the calling exec and GLOBALV GET in the callee
If the variables contain one word only, one can indeed save a call to
EXECCOM:
 'GLOBALV SET V1' content 'V2' content 
But, in such cases one can also pass the variables as arguments to the
callee.  In my PRFGUI package, this technique is extensively used.  The
caller:
 'EXEC PRFGD PLOT' files ',',
  WorkWithTrd Spec407Bug UserVarsFnd NodeVarsFnd TracePipe chartid',',
  DtStringFromCharPtr DtStringToBuffer DtStringAppend DtObjectDelete,
  DtEventNotify DtValueSet DtValueGet DtTableCount DtTableQuery,
  hCnChanClo hCnChanRun hCnEdChMsg hCnEdChMsgC hCnLyChan',',
  Days2plot red cyan cyan2 yellow yellow2 gddmSticky,
   ',' hCnLsFlDisa,

Note that I insert some separator character (a comma above) when a
preceeding variable can be empty or when the contents can be more than 1
word.  Needless to say that the corresponding PARSE ARG in the callee must
have an indentical template.
--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/13, Rob van der Heij [EMAIL PROTECTED]:


On 1/12/07, Peter Rothman [EMAIL PROTECTED] wrote:

 Besides a lot of 'steam lining' I thought I would be 'clever' and
changed
 the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

The EXECCOMM interface is known to be slow. With GLOBALV you only use
it once to set the variable, with the Pipeline you need 2 for the same
thing. I would expect that to be slow.
Depending on the number of Rexx variables present and involved, you
may gain back some performance using 'rexxvars' to retrieve all
variables and have a 'lookup' stage select the ones to use.

If there's enough variables to copy that this makes a difference, then
I assume they contain the data your subroutine works on. It is often
not hard to make the subroutine in a pipe stage and pass the data
through the pipeline rather than the Rexx variables.

But the most efficient approach is of course to keep the data in the
pipeline entirely.

Rob



Rexx performance question

2007-01-12 Thread Peter Rothman
We have an old REXX exec that I had to modify.
This is a rather simplistic description but it consists of 2 parts - 1 to
set up the environment(variables) and 2 to use the variables setup in 1.
Bottom I had problems modifying it so I re-wrote it.

The original used GLOBALV extensively - part 1 would do PUTs and part 2
would do GETs.
Besides a lot of 'steam lining' I thought I would be 'clever' and changed
the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

However the new exec ran much slower than the old.

I then did a test to only compare GLOBALV PUT/GET to setting and retrieving
the variable with PIPE var stage.

The pipe stage was much slower.

I thought the pipe logic would be better - obviously mistaken.

Any comments - any other method I could have used that is perhaps faster
than GLOBALV?

Thanks
Peter


Re: Rexx performance question

2007-01-12 Thread Peter Rothman
No, I had not. Thanks, I will try.



   
 Kris Buelens  
 [EMAIL PROTECTED] 
 il.comTo 
 Sent by: The IBM  IBMVM@LISTSERV.UARK.EDU 
 z/VM Operating cc 
 System
 [EMAIL PROTECTED] Subject 
 ARK.EDU  Re: Rexx performance question   
   
   
 01/12/2007 10:23  
 AM
   
   
 Please respond to 
   The IBM z/VM
 Operating System  
 [EMAIL PROTECTED] 
 ARK.EDU  
   
   




Have you tried this too?
  PIPE LITERAL VAR1 VAR2 VAR3 ...| SPLIT |VARFETCH 1 DIRECT TOLOAD|VARLOAD
DIRECT
Note: the DIRECT tells not to try to resolve compound symbols, this also
means one must pass the variable names in uppercase (and stem suffixes in
the exact case).

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Peter Rothman [EMAIL PROTECTED]:
  We have an old REXX exec that I had to modify.
  This is a rather simplistic description but it consists of 2 parts - 1 to
  set up the environment(variables) and 2 to use the variables setup in 1.
  Bottom I had problems modifying it so I re-wrote it.

  The original used GLOBALV extensively - part 1 would do PUTs and part 2
  would do GETs.
  Besides a lot of 'steam lining' I thought I would be 'clever' and changed
  the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

  However the new exec ran much slower than the old.

  I then did a test to only compare GLOBALV PUT/GET to setting and
  retrieving
  the variable with PIPE var stage.

  The pipe stage was much slower.

  I thought the pipe logic would be better - obviously mistaken.

  Any comments - any other method I could have used that is perhaps faster
  than GLOBALV?

  Thanks
  Peter


Re: Rexx performance question

2007-01-12 Thread Peter . Webb
From my testing, PIPES incur quite a bit of overhead when starting up.
So, optimising means doing as much as possible within a PIPE to amortise
that overhead over as much work as possible, and therefore using as few
PIPE instances as possible.

You could write the variables to a temporary disk file as well. But use
EXECIO instead of PIPES to write the file, it uses less resources for
small files. 

-Original Message-
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] On
Behalf Of Peter Rothman
Sent: January 12, 2007 10:55
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Tested that - also much slower than GLOBALV.




 

 Kris Buelens

 [EMAIL PROTECTED]

 il.com
To 
 Sent by: The IBM  IBMVM@LISTSERV.UARK.EDU

 z/VM Operating
cc 
 System

 [EMAIL PROTECTED]
Subject 
 ARK.EDU  Re: Rexx performance question

 

 

 01/12/2007 10:23

 AM

 

 

 Please respond to

   The IBM z/VM

 Operating System

 [EMAIL PROTECTED]

 ARK.EDU

 

 





Have you tried this too?
  PIPE LITERAL VAR1 VAR2 VAR3 ...| SPLIT |VARFETCH 1 DIRECT
TOLOAD|VARLOAD
DIRECT
Note: the DIRECT tells not to try to resolve compound symbols, this
also
means one must pass the variable names in uppercase (and stem suffixes
in
the exact case).

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Peter Rothman [EMAIL PROTECTED]:
  We have an old REXX exec that I had to modify.
  This is a rather simplistic description but it consists of 2 parts - 1
to
  set up the environment(variables) and 2 to use the variables setup in
1.
  Bottom I had problems modifying it so I re-wrote it.

  The original used GLOBALV extensively - part 1 would do PUTs and part
2
  would do GETs.
  Besides a lot of 'steam lining' I thought I would be 'clever' and
changed
  the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

  However the new exec ran much slower than the old.

  I then did a test to only compare GLOBALV PUT/GET to setting and
  retrieving
  the variable with PIPE var stage.

  The pipe stage was much slower.

  I thought the pipe logic would be better - obviously mistaken.

  Any comments - any other method I could have used that is perhaps
faster
  than GLOBALV?

  Thanks
  Peter


The information transmitted is intended only for the person or entity to which 
it is addressed and may contain confidential and/or privileged material.  Any 
review retransmission dissemination or other use of or taking of any action in 
reliance upon this information by persons or entities other than the intended 
recipient or delegate is strictly prohibited.  If you received this in error 
please contact the sender and delete the material from any computer.  The 
integrity and security of this message cannot by guaranteed on the Internet.  
The Sender accepts no liability for the content of this e-mail or for the 
consequences of any actions taken on basis of the information provided.  The 
recipient should check this e-mail and any attachments for the presence of 
viruses.  The sender accepts no liability for any damage caused by any virus 
transmitted by this e-mail.  This disclaimer is the property of the TTC and 
must not be altered or circumvented in any manner.


Re: Rexx performance question

2007-01-12 Thread Kris Buelens

Using a file to store the variables a while, uggghhh...
File I/O remains terribly slow compared to memory access, even though you
might save some CPU (I don't know if you will save) the result may be code
than takes longer to complete in elapsed time.

The fact that EXECIO is faster than PIPE to write files is that one often
sees execs that every now and then write to a file.  If you do that with
PIPE, the file is closed after each write request; with EXECIO, the file is
only closed when you explicitly ask for it.
Again, the general rule is: do as much as possible in a single call, to
PIPE, to XEDIt, to 

2007/1/12, [EMAIL PROTECTED] [EMAIL PROTECTED]:


From my testing, PIPES incur quite a bit of overhead when starting up.
So, optimising means doing as much as possible within a PIPE to amortise
that overhead over as much work as possible, and therefore using as few
PIPE instances as possible.

You could write the variables to a temporary disk file as well. But use
EXECIO instead of PIPES to write the file, it uses less resources for
small files.

-Original Message-
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] On
Behalf Of Peter Rothman
Sent: January 12, 2007 10:55
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Tested that - also much slower than GLOBALV.






 Kris Buelens

 [EMAIL PROTECTED]

 il.com
To
 Sent by: The IBM  IBMVM@LISTSERV.UARK.EDU

 z/VM Operating
cc
 System

 [EMAIL PROTECTED]
Subject
 ARK.EDU  Re: Rexx performance question





 01/12/2007 10:23

 AM





 Please respond to

   The IBM z/VM

 Operating System

 [EMAIL PROTECTED]

 ARK.EDU









Have you tried this too?
  PIPE LITERAL VAR1 VAR2 VAR3 ...| SPLIT |VARFETCH 1 DIRECT
TOLOAD|VARLOAD
DIRECT
Note: the DIRECT tells not to try to resolve compound symbols, this
also
means one must pass the variable names in uppercase (and stem suffixes
in
the exact case).

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Peter Rothman [EMAIL PROTECTED]:
  We have an old REXX exec that I had to modify.
  This is a rather simplistic description but it consists of 2 parts - 1
to
  set up the environment(variables) and 2 to use the variables setup in
1.
  Bottom I had problems modifying it so I re-wrote it.

  The original used GLOBALV extensively - part 1 would do PUTs and part
2
  would do GETs.
  Besides a lot of 'steam lining' I thought I would be 'clever' and
changed
  the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

  However the new exec ran much slower than the old.

  I then did a test to only compare GLOBALV PUT/GET to setting and
  retrieving
  the variable with PIPE var stage.

  The pipe stage was much slower.

  I thought the pipe logic would be better - obviously mistaken.

  Any comments - any other method I could have used that is perhaps
faster
  than GLOBALV?

  Thanks
  Peter


The information transmitted is intended only for the person or entity to
which it is addressed and may contain confidential and/or privileged
material.  Any review retransmission dissemination or other use of or taking
of any action in reliance upon this information by persons or entities other
than the intended recipient or delegate is strictly prohibited.  If you
received this in error please contact the sender and delete the material
from any computer.  The integrity and security of this message cannot by
guaranteed on the Internet.  The Sender accepts no liability for the content
of this e-mail or for the consequences of any actions taken on basis of the
information provided.  The recipient should check this e-mail and any
attachments for the presence of viruses.  The sender accepts no liability
for any damage caused by any virus transmitted by this e-mail.  This
disclaimer is the property of the TTC and must not be altered or
circumvented in any manner.





--
Kris Buelens,
IBM Belgium, VM customer support


Re: Rexx performance question

2007-01-12 Thread Steve Gentry
Why not define a vdisk for storing the variables?  Definitely faster than 
the real thing.
Steve G





Kris Buelens [EMAIL PROTECTED]
Sent by: The IBM z/VM Operating System IBMVM@LISTSERV.UARK.EDU
01/12/2007 11:38 AM
Please respond to The IBM z/VM Operating System

 
To: IBMVM@LISTSERV.UARK.EDU
cc: 
Subject:Re: Rexx performance question


Using a file to store the variables a while, uggghhh...
File I/O remains terribly slow compared to memory access, even though you 
might save some CPU (I don't know if you will save) the result may be code 
than takes longer to complete in elapsed time.

The fact that EXECIO is faster than PIPE to write files is that one often 
sees execs that every now and then write to a file.  If you do that with 
PIPE, the file is closed after each write request; with EXECIO, the file 
is only closed when you explicitly ask for it. 
Again, the general rule is: do as much as possible in a single call, to 
PIPE, to XEDIt, to 

2007/1/12, [EMAIL PROTECTED]  [EMAIL PROTECTED]:
From my testing, PIPES incur quite a bit of overhead when starting up. 
So, optimising means doing as much as possible within a PIPE to amortise
that overhead over as much work as possible, and therefore using as few
PIPE instances as possible.

You could write the variables to a temporary disk file as well. But use 
EXECIO instead of PIPES to write the file, it uses less resources for
small files.

-Original Message-
From: The IBM z/VM Operating System [mailto:IBMVM@LISTSERV.UARK.EDU ] On
Behalf Of Peter Rothman
Sent: January 12, 2007 10:55
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Tested that - also much slower than GLOBALV. 






 Kris Buelens

 [EMAIL PROTECTED]

 il.com
To
 Sent by: The IBM  IBMVM@LISTSERV.UARK.EDU

 z/VM Operating
cc
 System

 [EMAIL PROTECTED] 
Subject
 ARK.EDU  Re: Rexx performance question





 01/12/2007 10:23

 AM





 Please respond to

   The IBM z/VM

 Operating System 

 [EMAIL PROTECTED]

 ARK.EDU









Have you tried this too?
  PIPE LITERAL VAR1 VAR2 VAR3 ...| SPLIT |VARFETCH 1 DIRECT 
TOLOAD|VARLOAD
DIRECT
Note: the DIRECT tells not to try to resolve compound symbols, this
also
means one must pass the variable names in uppercase (and stem suffixes
in
the exact case).

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Peter Rothman [EMAIL PROTECTED]:
  We have an old REXX exec that I had to modify. 
  This is a rather simplistic description but it consists of 2 parts - 1
to
  set up the environment(variables) and 2 to use the variables setup in
1.
  Bottom I had problems modifying it so I re-wrote it. 

  The original used GLOBALV extensively - part 1 would do PUTs and part
2
  would do GETs.
  Besides a lot of 'steam lining' I thought I would be 'clever' and
changed
  the GLOBALVs to 'PIPE var VarName 1 | var VarName'. 

  However the new exec ran much slower than the old.

  I then did a test to only compare GLOBALV PUT/GET to setting and
  retrieving
  the variable with PIPE var stage.

  The pipe stage was much slower. 

  I thought the pipe logic would be better - obviously mistaken.

  Any comments - any other method I could have used that is perhaps
faster
  than GLOBALV?

  Thanks
  Peter


The information transmitted is intended only for the person or entity to 
which it is addressed and may contain confidential and/or privileged 
material.  Any review retransmission dissemination or other use of or 
taking of any action in reliance upon this information by persons or 
entities other than the intended recipient or delegate is strictly 
prohibited.  If you received this in error please contact the sender and 
delete the material from any computer.  The integrity and security of this 
message cannot by guaranteed on the Internet.  The Sender accepts no 
liability for the content of this e-mail or for the consequences of any 
actions taken on basis of the information provided.  The recipient should 
check this e-mail and any attachments for the presence of viruses.  The 
sender accepts no liability for any damage caused by any virus transmitted 
by this e-mail.  This disclaimer is the property of the TTC and must not 
be altered or circumvented in any manner.



-- 
Kris Buelens,
IBM Belgium, VM customer support 



Re: Rexx performance question

2007-01-12 Thread Schuh, Richard
What is wrong with using GLOBALV? That can be memory-only as indicated
in the original post (it specified GET and PUT, not GETS, GETP, PUTS or
PUTP). There is no need to write to disk unless you need for the
variables to be retained across IPLs or logons (SESSION or LASTING
GLOBALV). Since it is strictly memory access, it ought to be faster than
using either Pipe or EXECIO. However, it might be faster if the two
EXECs could be joined together in a single EXEC so that the environment
variables would already be there and not need to be passed to the EXEC
that uses them.

Regards, 
Richard Schuh 

 



From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] On
Behalf Of Steve Gentry
Sent: Friday, January 12, 2007 10:02 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

 


Why not define a vdisk for storing the variables?  Definitely faster
than the real thing. 
Steve G 






Re: Rexx performance question

2007-01-12 Thread Kris Buelens

Even a VDISK means lots of overhead: one needs to go down all the way to CP.

If variables are more/or less constant, one can store them in a CMS file,
directly in a format understood by the VARLOAD stage.
  /varname/contents...
  
Then one can EXECLOAD that file and code
  PIPE  MYVARS FILE |VARLOAD DIRECT
Note that you cannot code a filemode on the  stage, the absence of a
filemode tells PIPE to look for an EXECLOADed file first.

2007/1/12, Steve Gentry [EMAIL PROTECTED]:



Why not define a vdisk for storing the variables?  Definitely faster than
the real thing.
Steve G




*Kris Buelens [EMAIL PROTECTED]*
Sent by: The IBM z/VM Operating System IBMVM@LISTSERV.UARK.EDU

01/12/2007 11:38 AM
Please respond to The IBM z/VM Operating System

To:IBMVM@LISTSERV.UARK.EDU
cc:
Subject:Re: Rexx performance question



Using a file to store the variables a while, uggghhh...
File I/O remains terribly slow compared to memory access, even though you
might save some CPU (I don't know if you will save) the result may be code
than takes longer to complete in elapsed time.

The fact that EXECIO is faster than PIPE to write files is that one often
sees execs that every now and then write to a file.  If you do that with
PIPE, the file is closed after each write request; with EXECIO, the file is
only closed when you explicitly ask for it.
Again, the general rule is: do as much as possible in a single call, to
PIPE, to XEDIt, to 

2007/1/12, [EMAIL PROTECTED] [EMAIL PROTECTED] * [EMAIL PROTECTED][EMAIL 
PROTECTED]
:
From my testing, PIPES incur quite a bit of overhead when starting up.
So, optimising means doing as much as possible within a PIPE to amortise
that overhead over as much work as possible, and therefore using as few
PIPE instances as possible.

You could write the variables to a temporary disk file as well. But use
EXECIO instead of PIPES to write the file, it uses less resources for
small files.

-Original Message-
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] 
*IBMVM@LISTSERV.UARK.EDU]
On
Behalf Of Peter Rothman
Sent: January 12, 2007 10:55
To: [EMAIL PROTECTED] IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

Tested that - also much slower than GLOBALV.






Kris Buelens

[EMAIL PROTECTED]

*il.com* http://il.com/
To
Sent by: The IBM  [EMAIL PROTECTED]IBMVM@LISTSERV.UARK.EDU

z/VM Operating
cc
System

[EMAIL PROTECTED] * [EMAIL PROTECTED]
Subject
*ARK.EDU* http://ark.edu/  Re: Rexx
performance question





01/12/2007 10:23

AM





Please respond to

  The IBM z/VM

Operating System

[EMAIL PROTECTED] [EMAIL PROTECTED]

*ARK.EDU* http://ark.edu/









Have you tried this too?
 PIPE LITERAL VAR1 VAR2 VAR3 ...| SPLIT |VARFETCH 1 DIRECT
TOLOAD|VARLOAD
DIRECT
Note: the DIRECT tells not to try to resolve compound symbols, this
also
means one must pass the variable names in uppercase (and stem suffixes
in
the exact case).

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Peter Rothman [EMAIL PROTECTED][EMAIL PROTECTED]
:
 We have an old REXX exec that I had to modify.
 This is a rather simplistic description but it consists of 2 parts - 1
to
 set up the environment(variables) and 2 to use the variables setup in
1.
 Bottom I had problems modifying it so I re-wrote it.

 The original used GLOBALV extensively - part 1 would do PUTs and part
2
 would do GETs.
 Besides a lot of 'steam lining' I thought I would be 'clever' and
changed
 the GLOBALVs to 'PIPE var VarName 1 | var VarName'.

 However the new exec ran much slower than the old.

 I then did a test to only compare GLOBALV PUT/GET to setting and
 retrieving
 the variable with PIPE var stage.

 The pipe stage was much slower.

 I thought the pipe logic would be better - obviously mistaken.

 Any comments - any other method I could have used that is perhaps
faster
 than GLOBALV?

 Thanks
 Peter


The information transmitted is intended only for the person or entity to
which it is addressed and may contain confidential and/or privileged
material.  Any review retransmission dissemination or other use of or taking
of any action in reliance upon this information by persons or entities other
than the intended recipient or delegate is strictly prohibited.  If you
received this in error please contact the sender and delete the material
from any computer.  The integrity and security of this message cannot by
guaranteed on the Internet.  The Sender accepts no liability for the content
of this e-mail or for the consequences of any actions taken on basis of the
information provided.  The recipient should check this e-mail and any
attachments for the presence of viruses.  The sender accepts no liability
for any damage caused by any virus transmitted by this e-mail

Re: Rexx performance question

2007-01-12 Thread Stracka, James (GTI)
We have not heard from Michael Coffin on this subject.  IIRC he was very
knowledgeable about using GLOBAL variables in REXX code.

-Original Message-
From: The IBM z/VM Operating System
[mailto:[EMAIL PROTECTED] On Behalf Of Schuh, Richard
Sent: Friday, January 12, 2007 1:44 PM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question



What is wrong with using GLOBALV? That can be memory-only as
indicated in the original post (it specified GET and PUT, not GETS,
GETP, PUTS or PUTP). There is no need to write to disk unless you need
for the variables to be retained across IPLs or logons (SESSION or
LASTING GLOBALV). Since it is strictly memory access, it ought to be
faster than using either Pipe or EXECIO. However, it might be faster if
the two EXECs could be joined together in a single EXEC so that the
environment variables would already be there and not need to be passed
to the EXEC that uses them.

Regards, 
Richard Schuh 

 


  _  


From: The IBM z/VM Operating System
[mailto:[EMAIL PROTECTED] On Behalf Of Steve Gentry
Sent: Friday, January 12, 2007 10:02 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: Rexx performance question

 


Why not define a vdisk for storing the variables?  Definitely
faster than the real thing. 
Steve G


If you are not an intended recipient of this e-mail, please notify the sender, 
delete it and do not read, act upon, print, disclose, copy, retain or 
redistribute it. Click here for important additional terms relating to this 
e-mail. http://www.ml.com/email_terms/



Re: Rexx performance question

2007-01-12 Thread Kris Buelens

I'd say there's nothing wrong with GLOBALV, but plumbers use their Piping
tools.

GLOBALV has an extra advantage: it is clear to the reader when one shares
variables between execs.  With a PIPE in a called exec one can do anything
that the reader of the calling exec will not be aware off.

Something more I remember: when REXX's VALUE function was extended to
support GLOBAL variables, we were told that using VALUE() was faster than
the GLOBLAV command.  But, only when compared to GLOABLV with a single
variable, so 'GLOBALV GET V1 V2 V3' outperforms 3 calls to VALUE().

--
Kris Buelens,
IBM Belgium, VM customer support

2007/1/12, Stracka, James (GTI) [EMAIL PROTECTED]:


 We have not heard from Michael Coffin on this subject.  IIRC he was very
knowledgeable about using GLOBAL variables in REXX code.

 -Original Message-
*From:* The IBM z/VM Operating System [mailto:[EMAIL PROTECTED] *On
Behalf Of *Schuh, Richard
*Sent:* Friday, January 12, 2007 1:44 PM
*To:* IBMVM@LISTSERV.UARK.EDU
*Subject:* Re: Rexx performance question

 What is wrong with using GLOBALV? That can be memory-only as indicated in
the original post (it specified GET and PUT, not GETS, GETP, PUTS or PUTP).
There is no need to write to disk unless you need for the variables to be
retained across IPLs or logons (SESSION or LASTING GLOBALV). Since it is
strictly memory access, it ought to be faster than using either Pipe or
EXECIO. However, it might be faster if the two EXECs could be joined
together in a single EXEC so that the environment variables would already
be there and not need to be passed to the EXEC that uses them.

Regards,
Richard Schuh