MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: *slowing down* a Mathematica process (Dynamic/Refresh question)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101151] Re: *slowing down* a Mathematica process (Dynamic/Refresh question)
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Thu, 25 Jun 2009 07:14:01 -0400 (EDT)
  • References: <h1sv6e$mcj$1@smc.vnet.net>

Hi Michael,

Here is a slightly modified version of your code. I replaced your
outside source with Random[] to get some live 'data'. FinishDynamic
should only be necessary if you want to display all updates of high
frequency events.

The key here is to set TrackedSymbols to {} because every change in
holder causes an additional trigger event. I've added the variable c
that is incremented all the time to show that execution and display
occur with the same rate.

c = 1;
DynamicModule[{holder},
 Dynamic[Refresh[{c++, holder = Random[]}, UpdateInterval -> 1,
   TrackedSymbols -> {}]]]

To see why this works examine the following example in which holder
remains the same and :

c = 1;
DynamicModule[{holder},
 Dynamic[Refresh[{c++, holder = 1}, UpdateInterval -> 1,
   TrackedSymbols -> {holder}]]]

and here were

c = 1;
DynamicModule[{holder},
 Dynamic[Refresh[{c++, holder = 1}, UpdateInterval -> 1,
   TrackedSymbols -> {holder, c}]]]


BTW UpdateInterval->t only asks for an update MINIMALLY once every t
seconds (if possible). It does not force the update interval to be t
seconds.

Cheers -- Sjoerd


On Jun 24, 12:29 pm, Michael Stern <nycst... at gmail.com> wrote:
> I hope to use Mathematica as an interface to an outside process, in
> which it periodically polls an outside data source and performs
> calculations on the data. The problem is, the loop is quick and
> Mathematica polls the outside datasource too often. UpdateInterval does
> not help (I think it effects how often the updated results are
> displayed, but the polling continues as quickly as Mathematica can do
> it). Adding a call to Pause[] doesn't help either, as it causes the
> entire session to freeze and become unusable.
>
> I have tried this a variety of ways, getting the same behavior each
> time. A schematic of one version of the code appears below
>
> DynamicModule[{holder},
>  Dynamic[Refresh[FinishDynamic[]; holder = callToOutsideDataFeed[],
> UpdateInterval -> 1]]
>
> Are there any Dynamic/Refresh gurus out there who can help?
>
> Thank you,
>
> Michael Stern



  • Prev by Date: Re: Re: Ansatz?
  • Next by Date: Re: Using fractions in axis labels
  • Previous by thread: Re: *slowing down* a Mathematica process (Dynamic/Refresh question)
  • Next by thread: Re: *slowing down* a Mathematica process (Dynamic/Refresh question)