On 4/3/05 7:49 PM, "Richard Gaskin" <[EMAIL PROTECTED]> wrote:
With 10,000 lines in my main list and 5,000 lines in my exclude list, it takes only 25 milliseconds to use this on my single-processor PBG4 1MHz:
function ShortList pList, pExcludelist repeat for each line tLine in pList if tLine is not among the lines of pExcludeList then put tLine & cr after tNulist end if end repeat delete last char of tNuList return tNuList end ShortList
Wow, that's fast. So I decided to compare it to an implementation of Dar's second suggestion, which I've been using for a long time. The test I tried yields times very different from Richard's. Even though my machine is a dual 2 GHz G5, function "Shortlist" took almost a hundred times longer than Richard reported. I wonder why the times are so different.
But the other function ran almost 70 times faster than function "Shortlist."
Indeed it did. My earlier test was bunk -- can I use jet lag as my excuse today? :)
Here's the latest test below -- the array version is indeed orders of magnitude faster.
But one note from Ken raises a question -- Ken wrote:
Unfortunately this is something that will be executed in a
loop several thousand times, so even at 25ms * 2000 that
ends up being 50 seconds, which is way too long.You've probably already consider this, but is there a way you can reduce the number of iterations?
on mouseUp
repeat with i = 1 to 10000
put i&cr after tList
end repeat
put xList(tList) into tExcludeList
--
put the millisecs into t
get ShortList1(tList, tExcludeList)
put the millisecs - t into t1
--
put the millisecs into t
get ShortList2(tList,tExcludeList)
put the millisecs - t into t2
--
put t1 && t2
end mouseUp
function ShortList1 pList, pExcludelist repeat for each line tLine in pList if tLine is not among the lines of pExcludeList then put tLine & cr after tNulist end if end repeat delete last char of tNuList return tNuList end ShortList1
function ShortList2 pList, pExcludelist split pList with return and tab repeat for each line tLine in pExcludelist delete variable pList[tLine] end repeat return the keys of pList end ShortList2
function xList pList repeat for each line tLine in pList if tLine mod 2 = 0 then put tLine & cr after tNulist end if end repeat delete last char of tNuList return tNuList end xList
-- Richard Gaskin Fourth World Media Corporation ___________________________________________________________ [EMAIL PROTECTED] http://www.FourthWorld.com _______________________________________________ use-revolution mailing list [email protected] http://lists.runrev.com/mailman/listinfo/use-revolution
