Chris,

I'm conducting an informal speed test comparing identical projects in SuperCard (4.1.2), Revolution (2.2), and RealBasic (5.5.1). The projects match 3,000 short phrases against an 81,920 word text. There has already been some feedback and these simple projects are now running even faster. Each one is only a dozen lines of code.

Here are the current statistics:

RealBasic -- 234 ticks
Revolution -- 1120 ticks
SuperCard -- 1889 ticks

The following gave me about a 25% speedup by using offset() instead of "contains".
THEN... I thought of keeping track of already searched for strings in an array, which got the whole thing down to 2 ticks. Of course the effect of the latter will be much less with more random data, but it helps (and should in all of the languages).


I also found that you definitely have a faster computer than me... my original run took 3377 ticks!

My other benchmarks were 2586 ticks by using offset(), and 2 ticks by using arrays to notice redundant queries.

Hope that helps... it's still pretty readable which should be worth something =)

#########

on mouseUp
local tFind,tSearch,tLine,tMatchList,tTicks,tAlreadyFound,tAlreadyMissed
put "" into cd fld "TheResults"
put the ticks into sticks
put cd fld "TargetText" into theText
put field "SearchTextList" into stList
repeat for each line stLine in stList
if (tAlreadyFound[stLine] = "!") then
put stLine & cr after tMatchList
else if (tAlreadyMissed[stLine] = "!") then
next repeat
else if (offset(stLine, theText) > 0) then
put stLine & cr after tMatchList
put "!" into tAlreadyFound[stLine]
else
put "!" into tAlreadyMissed[stLine]
end if
end repeat
put tMatchList into cd fld "TheResults"
put the ticks - sticks && "ticks" into cd fld "SpeedRecords"
end mouseUp


_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to