function for greatest object in list less than or equal to a value
Alex Tweedly
alex at tweedly.net
Tue Oct 13 04:59:07 EDT 2015
On 13/10/2015 02:20, Mike Doub wrote:
> Pass by reference and you can eliminate a memcopy on the initial function call.
>
> -= Mike
>
>
That *used* to be true - but (unless my memory is playing tricks again
:-), Mark Waddingham said on the list recently that recent (*) versions
of LC use a pointer, and only "copy-on-write" - so there would be no
saving in this case.
Kind of verified by a very simple benchmark:
using a value of 500,000 I got times of
LC version normal pass by ref
6.6 4023 683
7.0.5 1655 1486
8.0 1768 1465
The code used (with apologies - a bit rushed)
constant K = 100
constant KK = 10
on mouseUp
ask "how often"
put it into KKK
repeat K times
put "a" after tmp
end repeat
repeat KK times
put tmp after tmp
end repeat
put the number of chars in tmp
put the millisecs into t1
repeat KKK times
aa tmp
end repeat
put " took " & the millisecs - t1 after msg
put the millisecs into t1
repeat KKK times
bb tmp
end repeat
put " took " & the millisecs - t1 after msg
end mouseUp
on aa p
put char 1 of p into t
end aa
on bb @p
put char 1 of p into t
end bb
-- Alex.
On 13/10/2015 02:20, Mike Doub wrote:
> Pass by reference and you can eliminate a memcopy on the initial function call.
>
> -= Mike
>
>
>
> On Oct 12, 2015, 9:11 PM, at 9:11 PM, Geoff Canyon <gcanyon at gmail.com> wrote:
>> Not quite as concise, but this function is about 3x faster:
>>
>> function greatestLessThan pList,V
>> put empty into R
>> repeat for each item i in pList
>> if i < V and i > R then put i into R
>> end repeat
>> return R
>> end greatestLessThan
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list