deleteDups()
Mark Smith
mark at maseurope.net
Wed Nov 16 13:51:26 EST 2005
I'm getting the split version as about 10% faster than 'repeat for each'
Rev 2.6.1
Mac PB G4 1.5Ghz
Mark
On 16 Nov 2005, at 17:44, Alex Tweedly wrote:
> Geoff Canyon wrote:
>
>>
>> Bother -- it happened again. First we had repeat for each turning
>> up faster than the filter command. Now I've done a test on the
>> following, and it looks like the split command takes not quite
>> twice as long as repeat for each (when repeat for each is handled
>> the following way).
>>
>> function deleteDupes pList -- does _not_ retain sort order
>> repeat for each line L in pList
>> put 1 into temp[L]
>> end repeat
>> return the keys of temp
>> end deleteDupes
>>
>>
> I wonder if this is because the "split" method used a secondary
> delimiter (numtochar(3)) which doesn't exist in the data. (Nothing
> to do with the choice of secondaryDelimiter - you need to pick one
> that isn't in the data).
>
> So the effort involved in the "split" is
>
> search for next linedelimiter
> search within that line for the secondaryDelimiter
> (which isn't there, so needs to scan all the way through
> each line)
> create the array element
> (i.e. every character is scanned twice).
>
> In your "repeat for each ... " version, there is only a single
> search (for the lineDelimiter), so you're doing basically half as
> much searching, plus a little bit of loop overhead.
>
> That fits the data (given huge dollops of hindsight :-), though it
> is still surprising and maybe disappointing.
>
>
> --
> Alex Tweedly http://www.tweedly.net
>
>
>
> --
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.1.362 / Virus Database: 267.13.2/170 - Release Date:
> 15/11/2005
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list