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