[Date Index]
[Thread Index]
[Author Index]
Re: The simple command x=0;Dynamic[x=x+1]
*To*: mathgroup at smc.vnet.net
*Subject*: [mg124876] Re: The simple command x=0;Dynamic[x=x+1]
*From*: Fred Simons <f.h.simons at tue.nl>
*Date*: Fri, 10 Feb 2012 05:55:21 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*References*: <20122716396.398638@jfultz3winlap>
Dear John,
Many thanks for your reaction. Your postings are always worth to be
studied carefully.
My idea was that updating happens at a speed of about 20 times per
second, but that seems to be incorrect. It turns out to be much higher.
You give a nicely detailed description of the updating cycle, together
with the question:
> Where are you getting "20" from? What is it that updates at that speed? You've
> completely lost me here.
Well, that factor 20 is mentioned in the tutorial Advanced Dynamic
Functionality. After the description of the updating mechanisme,
slightly less detailed than the one in your post, it continues:
By default, dynamic outputs triggered by changes in variable values are
updated no faster than twenty times per second (this rate can be changed
with the SystemOption "DynamicUpdateInterval").
When I read this for the first time, already a long time ago, I did a
little test by counting the number of updates and comparing them with
the total time:
In[46]:= ctr=0;
Dynamic[ctr=ctr+1;j, TrackedSymbols:>{j}]
j=0; While[j<10^6, j=j+1] // Timing
ctr
Out[47]= 1000000
Out[48]= {1.342,Null}
Out[49]= 22
This result was close to what I expected: about 20 times per second.
However. now I see that the fact that this test resulted in a speed of
20 updates per second was pure luck. If I had done this test only
slightly different, for example with a Do-loop instead of a While-loop,
I would have been puzzled already then.
Or when I would have changed the DynamicUpdateInterval to 10 updates per
second:
In[41]:= SetSystemOptions["DynamicUpdateInterval"->0.1];ctr=0;
Dynamic[ctr=ctr+1;j, TrackedSymbols:>{j}]
j=0; While[j<10^6, j=j+1] // Timing
SetSystemOptions["DynamicUpdateInterval"->0.05];
ctr
Out[42]= 1000000
Out[43]= {1.591,Null}
Out[45]= 954
So at the moment it is this paragraph in the tutorial and the meaning of
DynamicUpdateInterval that confuses me.
Am I right in my understanding of your description of the update cycle
that when the frontend is informed by the kernel that a variable (in a
displayed Dynamic, of course) needs updating, that is seen by the
frontend as a signal that the the screen has to be redrawn?
Once again many thanks,
Fred Simons
Eindhoven University of Technology
Prev by Date:
**Re: Why does the order of down values come back?**
Next by Date:
**Re: ListInterpolate and missing values**
Previous by thread:
**Re: The simple command x=0;Dynamic[x=x+1]**
Next by thread:
**need to find polyhedrons with less than a 24 vertex array in PolyhedronData[]**
| |