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
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
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