Two features I don't understand

Alex Tweedly alex at tweedly.net
Thu Oct 30 18:32:31 EDT 2014


On 30/10/2014 18:36, Richard Gaskin wrote:
> 1. ID caching
> Page 10 of the v6.0 Release Notes:
> <http://downloads.livecode.com/livecode/6_0_0/LiveCodeNotes-6_0_0.pdf>
>
> The description there says:
>
>    The engine now caches lookups of control references of the form
>    “card id ...” and “control id ...”.  This speeds up any access
>    using those forms after the first time, turning an operation that
>    would be completed in linear time into one that will be completed
>    in constant time.
>
> What does that mean in practical terms?  How can I benchmark the 
> benefit of this new feature?
>
Hmmmm - I said this once before :-) :-)

If I could remember well enough how to find things on Nabble or Gmane, 
I'd just point to the original thread - but since I can't and am in a 
hurry - here's a message I sent to this list on 12/05/2013.

>
>
>
> Yes, here's an example. The clue (I think) is in the "linear 
> time...into constant time"
>
> Create a large-ish number of controls - in this stack I cloned a 
> button 1000 times, calling them
> BBB1   BBB2 .... BBB1000
>
> Then this code accesses a single control many times - and shows that 
> accessing by id is much faster than accessing by name, but more 
> importantly here, that in 6.0 access by id to the most recently 
> accessed control is very fast.
>
> in 5.5.3
> name takes 830 ms while id takes only 250 ms
>
> but in 6.0 (i.e. with id caching)
> name takes 830 ms while id takes 5 ms
>
> -- Alex.
>
>
>
> global K
>
> on mouseUp
>    put 1000 into K
>
>    put the millisecs into t1
>    put "BBB"&(K-10) into tName
>    repeat 10000 times
>       put the short name of control tName  into t
>    end repeat
>    put the millisecs-t1 && t &CR after msg
>
>    put the millisecs into t1
>    put the id of button tName into tID
>    repeat 10000 times
>       put the short name of control id tID  into t
>    end repeat
>    put the millisecs-t1 && t &CR after msg
>
> end mouseUp
>
>
>
> On 11/05/2013 03:11, Richard Gaskin wrote:
> The Release Notes for v6 include:
>
>   ID caching (6.0 DP 2)
>   New global property – allowDatagramBroadcasts (6.0 DP 2)
>   A new global property allowDatagramBroadcasts has been added. This
>   needs to be set to true before sending to a broadcast address
>   (enables the per-socket flag for whether they are allowed).
>   The engine now caches lookups of control references of the form
>   “card id ...” and “control id ...”.
>   This speeds up any access using those forms after the first time,
>   turning an operation that would be completed in linear time into
>   one that will be completed in constant time.
>
>
> I'm not clear on the syntax, so I've been unable to benchmark the 
> performance boost.
>
> Anyone here have a sample of ID caching in action?
>
> -- 
>  Richard Gaskin
>  Fourth World
>  LiveCode training and consulting: http://www.fourthworld.com
>  Webzine for LiveCode developers: http://www.LiveCodeJournal.com
>  Follow me on Twitter: http://twitter.com/FourthWorldSys
>
> _______________________________________________
> 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