I figured the filter command would carry at least some overhead for its convenience, but I had no idea how much!

I wrote the test below to compare it with walking through a list line by line, and the results were surprising:

on mouseUp
  put  fwdbCurTableData() into s -- gets 10,800 lines of
  --                                tab-delimited data
  --
  -- Method 1: filter command
  --
  put format("*a*\t*r*\tr\t*\t*\t*\t*\t*") into tFilter       
  put s into result1
  put the millisecs into t
  filter result1 with tFilter
  put the millisecs - t into t1
  --
  --
  -- Method 2: repeat for each
  --    
  set the itemdel to tab
  put the millisecs into t
  repeat for each line tLine in s
    if item 1 of tLine contains "a" \
        AND item 2 of tLine contains "r"\
        AND item 3 of tLine is "r" then
      put tLine&cr  after result2
    end if
  end repeat
  delete last char of result2
  put the millisecs - t into t2
  --
  put result1 into fld "result"
  put result2 into fld "result2"
  --
  put "Filter: "&t1 &cr& "Repeat: "&t2
end mouseUp



Results -
   Filter: 745
   Repeat: 40

Did I miss something, or am I just seeing the penalty for the filter command's generalization?

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to