Richard Gaskin wrote:


Easier to script, yes, but note the result from running this script which compares both methods:


on mouseUp
  put 1000 into N
  put fld 1 into tData
  --
  --
  -- 1. repeat for each
  --
  put the millisecs into t
  repeat N
    --
    put empty into R1
    repeat for each line tLine in tData
      if tLine is not empty then
        put tLine &cr after R1
      end if
    end repeat
    delete last char of R1
    --
  end repeat
  put the millisecs - t into t1
  --
  --
  -- 2. filter:
  --
  put the millisecs into t
  repeat N
    --
    put tData into R2
    filter R2 without empty
    --
  end repeat
  put the millisecs - t into t2
  --
  --
  -- Result:
  put t1 && t2
end mouseUp

Results are very data dependent; I get anything from
 30  14
to
 67 104
for different input fields (i.e. 2:1 ratio in either direction).


Did I write this wrong?

Perhaps. Method 2 above makes a copy of the data before filtering the copy - which may or may not be necessary in the real application context. If the original (unfiltered) value is no longer needed then you *may* be able to avoid the copy- which would change the results (though not by very much - small change compared to the data dependency variation).

Seems most times I benchmark "repeat for each" with the well-optimized "put after" I get results that hold up surprisingly well.

I have another post in the works with some other interesting benchmarks related to processing lists (things I learned on summer vacation <g>)...

I'll buy you a dictionary some day, so you can read up on "vacation" :-)


--
Alex Tweedly       http://www.tweedly.net



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.5/406 - Release Date: 02/08/2006

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to