Hi Karl, Thank you for asking that question, 'cause funny as it sounds I never thought to do a speed test on this construct.
I didn't include the delete statement because what you really wanted to test was the LOOP/REPEAT vs. the GO construct. Guess what? After doing four consecutive runs and picking the fastest of each four, LOOP/REPEAT wins!!!!!! LOOP/REPEAT came out at 15.9 Million loops per second while GOTO came out at 14.3 MLPS. This running on a 2.6ghz P4 w2000 install of Unidata PE. (Notice I also prefer the EXIT statement in environments that have it) I actually thought that the GOTO would win, but it appears that the P-code processor has been optimized to work faster with loop constructs. So does this end the GOTO holy war? Less Filling, Tastes Better, Goes Faster??? ;-) SPEEDTEST.GOTO How long in seconds? ?10 14369777 total loops 1436977.7 per second PC: SPEEDTEST How long in seconds? ?10 15921613 total loops 1592161.3 per second PC: * Release * CUSTOM * SPEEDTEST - does what it sounds like PRINT 'How long in seconds? ':;INPUT HL START = TIME() ENDING = START + HL COUNTER = 0 LOOP COUNTER += 1 IF TIME() GE ENDING THEN EXIT REPEAT PRINT COUNTER:' total loops' PRINT COUNTER/HL:' per second' STOP * Release * CUSTOM * SPEEDTEST.GOTO - does what it sounds like PRINT 'How long in seconds? ':;INPUT HL START = TIME() ENDING = START + HL COUNTER = 0 10 COUNTER += 1 IF TIME() GE ENDING THEN GOTO 20 GOTO 10 20 PRINT COUNTER:' total loops' PRINT COUNTER/HL:' per second' STOP Allen E. Elwood Senior Programmer Analyst Sysmark Information Systems, Inc. Direct (818) 361-5251 Fax (818) 361-5251 Cell (818) 359-8162 Home (818) 361-7217 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Monday, December 13, 2004 07:33 To: [EMAIL PROTECTED] Subject: [U2] LOOP or GOTO on READNEXT I've seen 2 ways to read a client key, change the length to 6 digits, then write it back out, delete the old one and move on: EXAMPLE 1 of 2: !(FIXEMPNO) - Fix the employee number length open '','CUSTEMP' to CF else stopm 'Not' select CF 10: readnext K else stop read REC from CF,K then NK = fmt(K,"R%6") write REC on CF,NK delete CF,K end go 10 end EXAMPLE 2 of 2: !(FIXEMPNO) - Fix the employee number length DONE = 0 open '','CUSTEMP' to CF else stopm 'Not' select CF loop readnext K else DONE = 1 read REC from CF,K then NK = fmt(K,"R%6") write REC on CF,NK delete CF,K end repeat end My intent is not to start a religious discussion about GO or GOTOs because I see that method all over the place and regardless of why, who or whatever, my question is, which is faster. (I prefer using loop..repeat syntax, FWIW). -- Karl L. Pearson Director of IT, ATS Industrial Supply Direct: 801-978-4429 Toll-free: 800-789-9300 1,29 Fax: 801-972-3888 http://www.atsindustrial.com [EMAIL PROTECTED] ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/