Suppress graph update after nested function terminates / slow graph autoscale for very large traces with markers

Hi,

Two questions:

- I use a 'host' function which in turn calls another nested function in a loop. It seems that windows are updated everytime the nested function terminates, which significantly slows down the 'host' function (I end up closing all graphs prior to executing this function). Is there a way to suppress this updates (like pauseupdate for macros)?

- For very large traces (~ 10 million points), the graph autoscale operation is extremely slow (minutes) when the trace style is 'markers and lines' (with 'line between points' or 'dots' style, the same autoscale takes seconds). Is there anything I can do to speed up autoscale with the 'line and markers' style?

Igor 6.2.0.0, Windows XP SP3

Thanks!
Fabrizio
fabrizio wrote:

- I use a 'host' function which in turn calls another nested function in a loop. It seems that windows are updated everytime the nested function terminates, which significantly slows down the 'host' function (I end up closing all graphs prior to executing this function). Is there a way to suppress this updates (like pauseupdate for macros)?

Graphs, tables, etc. aren't updated while user functions are executing, except when the DoUpdate command is called. So look through your code for DoUpdate, and if you see it try commenting it out and see if that improves performance. If that doesn't seem to be the case, please provide a code example here so we can take a look (or you can send it to support@wavemetrics.com if it's confidential or something).

fabrizio wrote:

- For very large traces (~ 10 million points), the graph autoscale operation is extremely slow (minutes) when the trace style is 'markers and lines' (with 'line between points' or 'dots' style, the same autoscale takes seconds). Is there anything I can do to speed up autoscale with the 'line and markers' style?

That's a lot of markers to draw, so I would expect it to be relatively slow. If you double click on the trace to bring up the Modify Trace dialog, when you select Lines and Markers mode, there's a Sparse Markers checkbox. Check that and have it draw only every nth marker. Note that if you make this value too large, it will appear that you have fewer data points than you actually have.
fabrizio wrote:
- I use a 'host' function which in turn calls another nested function in a loop. It seems that windows are updated everytime the nested function terminates, which significantly slows down the 'host' function (I end up closing all graphs prior to executing this function). Is there a way to suppress this updates (like pauseupdate for macros)?
If your inner function calls CurveFit or FuncFit it can cause an update. To completely suppress any possible update, first upgrade to the latest version (6.20). Then use the /N flag withe CurveFit or FuncFit. /N suppresses updates during fitting, but it may still update at the end of fitting. If you are doing a curve fit, then you probably already have
Variable V_fitOptions=4

because you aren't complaining about the fit progress window. Change that to
Variable V_fitOptions=4+16

This adds a bit to V_fitOptions that will suppress the screen update at the end of fitting.

John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
Yes, there is a curvefit and the v_fitoptions=4+16 solved my problem - Thanks!
- Fabrizio