Dick Kriesel wrote:
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

Reply via email to