Re: Dynamic performance - input fields slow
- To: mathgroup at smc.vnet.net
- Subject: [mg100202] Re: Dynamic performance - input fields slow
- From: nonaggie at gmail.com
- Date: Thu, 28 May 2009 04:27:12 -0400 (EDT)
- References: <28412010.1243248483392.JavaMail.root@n11> <gvhmc6$84s$1@smc.vnet.net>
Interesting; when I copy it to a fresh notebook in a new session of
Mathematica, I have the same problem. Perhaps it's just because my
computer is old and slow. However, I tried it on a different
computer, and I experience the same issue if I make the graphics
complicated enough.
For example:
DynamicModule[{f, g},
{InputField[Dynamic[f], FieldSize -> 10],
InputField[Dynamic[g], FieldSize -> 10],
Dynamic[Plot3D[f, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 250],
TrackedSymbols -> {f}]}
]
has noticeably slower response in the input fields as compared to
Manipulate[
Plot3D[f, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 250],
{f}, {g}]
It appears to me (although this is just a guess) that the Dynamic
version tries to redraw the graphics each time I type in an input
field, whereas the Manipulate version does not. Any idea what
Manipulate does to get this behavior?
By the way, I'm using Mathematica 6, if it makes a difference.
On May 26, 5:19 pm, "David Park" <djmp... at comcast.net> wrote:
> When I copy your DynamicModule example into a fresh notebook, I don't
> experience any problem with slow response to typing before or after the p=
lot
> is rendered.
>
> David Park
> djmp... at comcast.nethttp://home.comcast.net/~djmpark/
>
> From: nonag... at gmail.com [mailto:nonag... at gmail.com]
>
> Hello,
>
> I'm writing a Dynamic module with 3D graphics and several input
> fields. Once the 3D plot is rendered, simply typing in the input
> fields become extremely slow (even though the graphic is not
> changing).
>
> Here's a simple example:
>
> DynamicModule[{f, g},
> {InputField[Dynamic[f], FieldSize -> 10],
> InputField[Dynamic[g], FieldSize -> 10],
> Dynamic[Plot3D[f, {x, -2, 2}, {y, -2, 2}]]
> }
> ]
>
> Initially, both input fields respond quickly to typing. If I enter
> something in the first, like x, then the plot shows, and the input
> fields no longer respond quickly to typing. If I do the same thing
> with Manipulate, I don't experience this problem:
>
> Manipulate[
> Plot3D[f, {x, -2, 2}, {y, -2, 2}],
> {f}, {g}]
>
> I would like to use Dynamic rather than Manipulate because the
> eventual UI will be quite a bit more complicated, but I'm not sure
> what's causing the slow performance. Does anybody have any tips?
>
> Thanks!