help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to improve sequence plotting speed (to get more fluent animation


From: Martin Helm
Subject: Re: how to improve sequence plotting speed (to get more fluent animation)?
Date: Sun, 4 Apr 2010 14:56:41 +0200
User-agent: KMail/1.12.4 (Linux/2.6.31.12-0.2-desktop; KDE/4.3.5; x86_64; ; )

Am Sonntag, 4. April 2010 03:36:27 schrieb Dr.-Ing. Torsten Finke:
> Hello,
> 
> On Sat, Apr 03, 2010 at 08:21:30PM +0200, Martin Helm wrote:
> > I noticed that it is only slow with the x11 terminal.
> > Try the following
> >
> > export GNUTERM=wxt
> > octave
> >
> > run your script. On my machine this gives a surprising speedup and
> > completely smooth animation with the gnuplot backend.
> 
> on my system (GNU Octave, version 3.2.4 - G N U P L O T  Version 4.2) the
> terminal "wxt" gave only little improvement (sorry for not having mentioned
> this).
> 
> I wonder if this might be an Octave or a Gnuplot issue.
> 
> 
> Thanks for your hints and best regards
> 
> 
> Torsten
> 
Sad to hear this. So in order to identify the bottleneck:

The main difference between your perl script and what octave does is simply 
that you send a plot command per graph you want to plot to gnuplot via the 
pipe with perl, but octave calculates the points and sends much more raw 
information over the pipe.
Is it possible that this is the problem on your system? Is there anything 
which could slow down the pipe that much (something else heavy using the hard 
disk in the background or something similar) to trigger that effect?
(I think this is not very likely because the amount of information sent is 
very limited - about 4kb per plot).

Can you change your perl script for comparison not to send "plot..." to 
gnuplot but also, like octave send the "raw" data.

You can for example do something like that to create a series of files which 
contain what octave sends to gnuplot

t = [0:100]/5;
s = sin(t) .* exp(-t/5); 
a = [0, 20, -1, 1];
k = 0; 
while k >= 0, 
    plot(t, sin(k) * s);
    axis(a);
    drawnow ("wxt", "/dev/null", false, ["gnuplotstream" num2str(10*k) 
".plt"]) 
    k = k + 0.1;
end

And send then the contents of the files to gnuplot with perl or something 
else.
At least this would tell you if octave itself is slowing you down or if your 
gnuplot might be the problem.

- mh



reply via email to

[Prev in Thread] Current Thread [Next in Thread]