REM Which is faster?
REM checking against an array or in an unrolled case statement
DIM A$(50)
FOR I%=1 TO 50
READ A$(I%)
NEXT
T%=10000
REM Test 1
T=TIME
FOR J%=1 TO T%
R%=RND(5)
IF R%=1 THEN B$=A$(RND(50)) ELSE B$="Dummy"
F%=FALSE
C%=1
REPEAT
IF B$=A$(C%) THEN F%=TRUE
C%+=1
UNTIL C%=51 OR F%=TRUE
NEXT
TT=TIME-T
PRINT TT
T=TIME
FOR J%=1 TO T%
R%=RND(5)
IF R%=1 THEN B$=A$(RND(50)) ELSE B$="Dummy"
F%=FALSE
CASE B$ OF
WHEN "ASDKJASD","ASDOIJASD","ASDOJASD","EGIJUNGR","NFROIN","IJNUVF","IJNSDC","IJNCWEC","IOEWNCF", \
\ "OIJDF","SF","ERGFEWRF","WSEF","H","RFGTH","SDFS","F","EGTRERG","SDFVSDF","ERFWEF","SDF","ERFWEFR","SD", \
\ "jdfsdf","sdf","wef","wefwffewfw","ebgdgtbr","tyhtyh","sdcsdc","rftger","wscsdc","dervwe","csd","cer", \
\ "sadko","sweoijnwe","efjwne","edkjwen","ewdkjwedoiwed","ewweidw","e","erwgt","rth","ws","fsadfsdf","sd", \
\ "dsf","asdf","asdfasdf"
F%=TRUE
OTHERWISE:
ENDCASE
NEXT
TT=TIME-T
PRINT TT
DATA ASDKJASD,ASDOIJASD,ASDOJASD,EGIJUNGR,JNFROIN,IJNUVF,IJNSDC,IJNCWEC,IOEWNCF
DATA OIJDF,SF,ERGFEWRF,WSEF,H,RFGTH,SDFS,F,EGTRERG,SDFVSDF,ERFWEF,SDF,ERFWEFR,SD
DATA jdfsdf,sdf,wef,wefwffewfw,ebgdgtbr,tyhtyh,sdcsdc,rftger,wscsdc,dervwe,csd,cer
DATA sadko,sweoijnwe,efjwne,edkjwen,ewdkjwedoiwed,ewweidw,e,erwgt,rth,ws,fsadfsdf,sd
DATA dsf,asdf,asdfasdf
Profiler report file - Sun.29 Mar 2009,17:11:51
Figures in the first column indicate approximate
time in milliseconds spent in each program line.
4273: REM Which is faster?
0: REM checking against an array or in an unrolled case statement
0: DIM A$(50)
0: FOR I%=1 TO 50
0: READ A$(I%)
0: NEXT
0:
0: T%=10000
0: REM Test 1
0: T=TIME
0: FOR J%=1 TO T%
3: R%=RND(5)
8: IF R%=1 THEN B$=A$(RND(50)) ELSE B$="Dummy"
1: F%=FALSE
1: C%=1
1: REPEAT
279: IF B$=A$(C%) THEN F%=TRUE
129: C%+=1
246: UNTIL C%=51 OR F%=TRUE
2: NEXT
0: TT=TIME-T
0: PRINT TT
0:
0: T=TIME
1: FOR J%=1 TO T%
1: R%=RND(5)
8: IF R%=1 THEN B$=A$(RND(50)) ELSE B$="Dummy"
2: F%=FALSE
2: CASE B$ OF
22: WHEN "ASDKJASD","ASDOIJASD","ASDOJASD","EGIJUNGR","NFROIN","IJNUVF","IJNSDC","IJNCWEC","IOEWNCF", \
32: \ "OIJDF","SF","ERGFEWRF","WSEF","H","RFGTH","SDFS","F","EGTRERG","SDFVSDF","ERFWEF","SDF","ERFWEFR","SD", \
32: \ "jdfsdf","sdf","wef","wefwffewfw","ebgdgtbr","tyhtyh","sdcsdc","rftger","wscsdc","dervwe","csd","cer", \
24: \ "sadko","sweoijnwe","efjwne","edkjwen","ewdkjwedoiwed","ewweidw","e","erwgt","rth","ws","fsadfsdf","sd", \
4: \ "dsf","asdf","asdfasdf"
2: F%=TRUE
0: OTHERWISE:
0: ENDCASE
1: NEXT
0: TT=TIME-T
0: PRINT TT
0:
0: DATA ASDKJASD,ASDOIJASD,ASDOJASD,EGIJUNGR,JNFROIN,IJNUVF,IJNSDC,IJNCWEC,IOEWNCF
0: DATA OIJDF,SF,ERGFEWRF,WSEF,H,RFGTH,SDFS,F,EGTRERG,SDFVSDF,ERFWEF,SDF,ERFWEFR,SD
0: DATA jdfsdf,sdf,wef,wefwffewfw,ebgdgtbr,tyhtyh,sdcsdc,rftger,wscsdc,dervwe,csd,cer
0: DATA sadko,sweoijnwe,efjwne,edkjwen,ewdkjwedoiwed,ewweidw,e,erwgt,rth,ws,fsadfsdf,sd
0: DATA dsf,asdf,asdfasdf
718: Libraries and immediate mode