For general information: In Universe, the SYSTEM(9) function will return the number of milliseconds used by the calling process, and while it is not necessarily precise, on a multiuser machine, it is probably a better measure of cpu work than time().
Nonetheless, the results in Brian's email are roughly what I would expect, showing that a MATREAD has a little overhead beyond a straight read, but is useful when a significant amount of attribute access is performed. The payout is likely to be larger when a significant number of fields are being updated, since each update in a dynamic array mutes any future benefit from the previous hint. -Rick On Jul 27, 2012, at 9:57 AM, Brian Leach <br...@brianleach.co.uk> wrote: > Here's a quick proggy I've scrudged together to get a rough indication - > results on my system are: > > Dynamic Dimensioned > Read/random access 18.4 14.2 > Read only 3.9 4.6 > > This is with small records: obviously with larger ones the gaps should > widen. > > Brian > > PROGRAM testdim > > DIM SALESREC(10) > > Open 'BOOK_SALES' To F.SALES Else STOP > > * Ignore the first run as it loads the file into memory > > Crt "First dummy run" > > Fin = @False > Select F.SALES > Loop > ReadNext Id Else Fin = @True > Until Fin Do > Read SalesRec From F.SALES, Id Else Null > Repeat > > > * Now the real one, read and randomly access fields > Crt "Dynamic Array" > > Now = Time() > For I = 1 To 100 > Fin = @False > > Select F.SALES > Loop > ReadNext Id Else Fin = @True > Until Fin Do > Read SalesRec From F.SALES, Id Else > SalesRec = '' > End > For J = 1 To 100 > Attr = Rnd(9) + 1 > Temp = SalesRec<Attr> > Next > Repeat > Next > Crt "Time taken : ": (Time() - Now) > > Crt "Dimensioned Array" > Now = Time() > For I = 1 To 100 > Fin = @False > > Select F.SALES > Loop > ReadNext Id Else Fin = @True > Until Fin Do > MatRead SALESREC From F.SALES, Id Else > Mat SALESREC = '' > End > For J = 1 To 100 > Attr = Rnd(9) + 1 > Temp = SALESREC(Attr) > Next > Repeat > Next > > Crt "Time taken : ": (Time() - Now) > > * Now just read overheads no access to fields > Crt "Dynamic Array Read Only" > > Now = Time() > For I = 1 To 100 > Fin = @False > > Select F.SALES > Loop > ReadNext Id Else Fin = @True > Until Fin Do > Read SalesRec From F.SALES, Id Else > SalesRec = '' > End > Repeat > Next > Crt "Time taken : ": (Time() - Now) > > Crt "Dimensioned Array Read Only" > Now = Time() > For I = 1 To 100 > Fin = @False > > Select F.SALES > Loop > ReadNext Id Else Fin = @True > Until Fin Do > MatRead SALESREC From F.SALES, Id Else > Mat SALESREC = '' > End > Repeat > Next > Crt "Time taken : ": (Time() - Now) > > STOP > > > -----Original Message----- > From: u2-users-boun...@listserver.u2ug.org > [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of > jbut...@hampshire.edu > Sent: 27 July 2012 16:24 > To: U2 Users List > Cc: U2 Users List > Subject: Re: [U2] Array Types > > I understand the performance trade off between dynamic and dimensioned > arrays but I'm curious about quantifying. > > I know the answer will depend on hardware and load, but in general at what > point (length) do dimensioned arrays become better performing than dynamic? > > 1000? > 10000? > 100000? > > Any examples or benchmarks appreciated. > > Jeff Butera > Sent from my iPhone > > On Jul 27, 2012, at 11:14 AM, "David L. Wasylenko" <d...@pickpro.com> wrote: > >> Speed >> There is a *long* thread here demonstrating the difference between *DAYS* > of processing and seconds, using large records for demonstration. >> >> ... david ... >> >> David L. Wasylenko >> President, Pick Professionals, Inc >> w) 314 558 1482 >> d...@pickpro.com >> >> >> -----Original Message----- >> From: u2-users-boun...@listserver.u2ug.org > [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Brutzman >> Sent: Friday, July 27, 2012 10:16 AM >> To: U2 Users List >> Subject: [U2] Array Types >> >> I am surprised that anyone uses dimensioned arrays. I use dynamic arrays > for everything. >> >> If there are any advantages that dimension arrays have over dynamic... > please let me know... without getting sentimental. >> >> --Bill >> _______________________________________________ >> U2-Users mailing list >> U2-Users@listserver.u2ug.org >> http://listserver.u2ug.org/mailman/listinfo/u2-users >> _______________________________________________ >> U2-Users mailing list >> U2-Users@listserver.u2ug.org >> http://listserver.u2ug.org/mailman/listinfo/u2-users > _______________________________________________ > U2-Users mailing list > U2-Users@listserver.u2ug.org > http://listserver.u2ug.org/mailman/listinfo/u2-users > > > _______________________________________________ > U2-Users mailing list > U2-Users@listserver.u2ug.org > http://listserver.u2ug.org/mailman/listinfo/u2-users _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users