We used to try to write machine-efficient code. Now machines are so fast, our emphasis is on people-efficient, ie easier to maintain.
On 8 February 2011 12:58, Dan McGrath <[email protected]> wrote: > I had many months ago as part of a project I'm working on (performance > pre-processor for UniBasic). > > I've recreated a (no-scientific) test to get some rough numbers. > > X=0 > LOOPS = 999999 > STIME = SYSTEM(9) > FOR I = 1 TO LOOPS > X += 1 > NEXT I > CRT SYSTEM(9) - STIME > X=0 > STIME = SYSTEM(9) > FOR I = 1 TO LOOPS > GOSUB INC.X > NEXT I > CRT SYSTEM(9) - STIME > STOP > INC.X: > X += 1 > RETURN > > This results in: > 385 > 608 > > So when an loop + addition takes 0.38 micro seconds > The gosub adds an extra 0.22 micro seconds > > > But, that isn't the whole truth. If you have a look at the byte code > BASIC produces, you can clearly see that it adds 4 bytes for each line > to indicate the line number. When it performs jumps (such as gosubs) it > always jumps to the appropriate byte position that is left in the byte > code to indicate the line number of the label. > > So, this means the above measurements are measure the overhead of the > extra line identifies as well (which is fine in practice) > > The below code compensates for that: > > X=0 > LOOPS = 999999 > STIME = SYSTEM(9) > FOR I = 1 TO LOOPS > X += 1 > X += 1 > X += 1 > X += 1 > NEXT I > CRT SYSTEM(9) - STIME > X=0 > STIME = SYSTEM(9) > FOR I = 1 TO LOOPS > GOSUB INC.X > NEXT I > CRT SYSTEM(9) - STIME > STOP > INC.X: > X += 1;X += 1; X += 1;X += 1 > RETURN > > Now we are comparing a loop, 4 additions and 4 lines vs a loop, a > GOSUB/RETURN, 4 additions and 4 lines. > > The results: > 939 > 1048 > > Or, the GOSUB/RETURN takes .11 microseconds. > > It's quite clear from the above timings that the line count is a bigger > performance overhead then using GOSUB/RETURN > > > Sorry for the overkill :) > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of DavidJMurray > (mvdbs.com) > Sent: Tuesday, 8 February 2011 10:08 AM > To: [email protected] > Subject: Re: [U2] Does UV have a "BLOCK" command > > > Has anyone measured the overheads of the various methods of subroutine > calls within UniBasic? > > Is it of significance? > > djm > > > Kate Stanton wrote: >> >> Why not use a subroutine? >> Personally, I like subroutines! >> >> > > > ----- > > Learn and Do > Excel and Share > > > http://mvdbs.com http://mvdbs.com > -- > View this message in context: > http://old.nabble.com/Does-UV-have-a-%22BLOCK%22-command-tp30867376p3086 > 8821.html > Sent from the U2 - Users mailing list archive at Nabble.com. > > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ > ########################################################################################### > The information transmitted in this message and attachments (if any) is > intended only > for the person or entity to which it is addressed. The message 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 is prohibited. If you received this in error, > please > contact the sender and delete the material from any computer. > > The intended recipient of this e-mail may only use, reproduce, disclose or > distribute > the information contained in this e-mail and any attached files with the > permission of IMB. > ########################################################################################### > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > -- Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Phone: + 64 9 360 5310 Mobile: + 64 21 400 486 Email: [email protected] _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
