On 06/03/2022 06:35, J. Landman Gay via use-livecode wrote:
Combined with Ken's suggestion to use "difference", looking up a list
of about 50 words in the filtered dictionary reduces the time from 2-4
seconds to about 40 ms. It varies, depending on a lot of things, but
it's fast enough that you don't notice. That's on my Pixel 5; on the
Mac a lookup takes 5ms. And I can do it all in LC script.
5ms !?!
I did a (very simple) test (see code below)
- take the whole sowpods.txt file (267k words)
- create a set (i.e. split by CR as set)
- look up 50 randomly chosen words + 5 non-words (just in case failed
searches were expensive).
Doing this 100 times takes 6-10 ms (on an old MacBook Pro).
Could you maybe post the code that you're using that takes 5ms ?
I love these little speed contests we have here. Thank you.
Alex.
on mouseup
local tmp, tNumberOfLines, tNumberOfLoops
local tWords, tAWords, tTries
put the cWords of me into tWords
if tWords is empty then
put URL ("file:" & specialfolderpath("resources") &
"/sowpods.txt") into tWords
set the cwords of me to tWords
put "From file" &CR into fld "F"
else
put "using custom property" &CR into fld "F"
end if
put tWords into tAWords
split tAWords by CR as set
repeat with I = 1 to 50
put random(the number of lines in tWords) into tmp
put line tmp of tWords &CR after tTries
end repeat
repeat with I = 1 to 5
put "azazaz" &Cr after tTries
end repeat
put 100 into tNumberofLoops
local t1, t2, tCount, tTotal
-- put the millisecs into t1
-- repeat tNumberOfLoops times
-- put 0 into tCount
-- repeat for each line L in tTries
-- if L is among the lines of tWords then add 1 to tCount
-- end repeat
-- end repeat
-- put the millisecs into t2
-- put tCOunt && "iterate lines" && t2-t1 &CR after fld "F"
put the millisecs into t1
repeat tNumberOfLoops times
put 0 into tCount
put 0 into tTotal
repeat for each line L in tTries
add 1 to tTotal
if tAWords[L] then add 1 to tCount
end repeat
end repeat
put the millisecs into t2
put tCount && "of" && tTotal && "each element" && t2-t1 &CR after
fld "F"
end mouseup
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode