Kirs, Alan
Thanks a lot I believe I have found the error of my ways.

You were both very helpful, and provide some good insight.

Tom


-----Original Message-----
From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED]
Behalf Of Kris Buelens
Sent: Wednesday, November 05, 2008 10:59 AM
To: IBMVM@LISTSERV.UARK.EDU
Subject: Re: CMS machine size calculation??


I'd say the storage for a variable needs to be contiguous.
Note that you can exploit tricks: REXX will not free the storage for a
variable when it shrinks (at least, that's what I heard ages ago).
So you might try to pre-allocate one (or more) variables
  varOne=left('',bigNumber); varOne=''
  varTwo=left(','bigNumber); varTwo=''
I did once perform some performance "study" of using long variables in
REXX.  I did that when I notices that my OS/2 program became very
slow.  On VM, REXX was better, that is, it kept good performance
longer.  OS/2 REXX degraded from 1K, VM from 4K
I redesigned the logic to avoid the very long strings.  I had to
collect historic data for several items:
    hist.item = date1 valueX1 valueY1 valueZ1 date2 valueX2 ...
I redesigned to to create a stem per year
   hist.item.year1=date1 valueX1 valueY1 valueZ1 date2 valueX2 ...
   hist.item.year2=....
Besides that, coding style (that seems silly, may give good gains.  For example
  do ...  /* Straight forward */
     files=files fn ft fm
  end
is slower than
  do ...  /* use parenthesis */
    files=files (fn ft fm)
  end

I'll send you the article I wrote for publication in VMupdate.

2008/11/5 Huegel, Thomas <[EMAIL PROTECTED]>:
> I am still missing something can anyone tell me what it is?
> This is the console from my little REXX program .. NEWLINE is =< 4K.
>
> It appears there is plenty of unallocated storage.. or do I need to be 
> looking at a speciffic pool?
>
> Thanks
>
> VMSIZE       NUCALPHA     NUCSIGMA     NUCOMEGA     NUCPHI       NUCCHI
> 01E00000     00F00000     00F564E8     01400000     01000000     013D0BF0
>
>                          Unallocated Free Storage Queue
>                          ----------- ---- ------- -----
>
>      <16Mb                      >16Mb
> Total       Largest        Total       Largest      Total Unallocated
> 006FE000    00386000       00390000    0038C000     00A8E000
> 3696640   <<<=== from length(dataline)
>   124 +++  dataline = dataline || newline
> DMSREX450E Error 5 running FTGET EXEC, line 124: Machine storage exhausted or 
> request exceeds limit
> Ready(20005); T=4.30/5.32 09:30:49
>
> -----Original Message-----
> From: The IBM z/VM Operating System [mailto:[EMAIL PROTECTED]
> Behalf Of Alan Altmark
> Sent: Tuesday, November 04, 2008 11:23 AM
> To: IBMVM@LISTSERV.UARK.EDU
> Subject: Re: CMS machine size calculation??
>
>
> On Tuesday, 11/04/2008 at 12:00 EST, "Huegel, Thomas" <[EMAIL PROTECTED]>
> wrote:
>> But  how can I determine if the CMS machine has enough virtual memory
> defined
>> to  handle the variable before building it?
>> It's  not good enough to just do a Q V STOR since that tells me
>> nothing regarding  how much storage is available.
>
> The easiest is to look at the output of the STORMAP command.  There you
> will find the size of the largest unallocated chunk of memory above and
> below 16M.   I would imagine that as you concatenate additional data on
> the variable that REXX is allocating new memory each time and moving the
> data to the new location.  So depending on the size of the "current" value
> and the "new" value, you could use 32M to add 1 byte to a string 16M-1
> bytes long.
>
> Alan Altmark
> z/VM Development
> IBM Endicott
>



-- 
Kris Buelens,
IBM Belgium, VM customer support

Reply via email to