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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to