From: Alan W. I. <ir...@be...> - 2014-03-14 21:33:11
|
On 2014-03-14 20:21-0000 John Duffy wrote: > Hi > > I have the following pseudo code which work well until it freezes... > > plsdev("wingcc"); > plspage(0, 0, 1600, 800, 0, 0); > plspause(0); > plinit(); > > for (...) { > plenv(); // set new x & y max and min parameters > plline(); // data to plot > } > > plend(); > > Like I say, it works well until it freezes after a few hundred iterations of displaying data. I would appreciate any help in pointers where to look for problems, my code or within the "wingcc" driver. When the code freezes, Windows reports the plotting window as not responding. Hi John: My guess is you are encountering some sort of memory management issue (heap corruption) or memory leak in the wingcc code or in the PLplot core library that is triggered by all your iterations. My bet is on a memory management issue for the combination of wingcc and the general PLplot -np option that you are using. My impression is that combination does not work as well as it should. For example, although results for the wingcc device normally display well for me on the Wine platform, they only show "transparent" results (just the frame for the window with everything else leaking through from the display below) if the -np PLplot option is used. Of course, this strange behaviour might just be the result of a Wine bug, but the other alternative is some memory management issue with how -np is implemented for the wingcc device driver that is creating a wide variety of peculiar results on various platforms. To distinguish whether the problem is in wingcc + the -np option or in the PLplot core, what happens if you try the equivalent for the svg device? (The -np option is ignored in that case since svg is a file-oriented device. However, use the command line options -fam -fflen 3 so that each of your plot pages [generated by plenv] will be written to a separate file rather than just the first page written to one file with the rest of the pages dropped). I also suggest you keep the number of iterations small until you get an idea of the disk space consumed by all the different svg page files you are going to generate by a large number of iterations. If you do have any trouble with the svg case could you simplify the example as much as possible while still demonstrating the issue, and then send me that simplified code so I can try it for myself? I would be happy to run it here on Linux under valgrind to check for any memory management or memory leak issues. Unfortunately, I cannot do such a check for wingcc since wingcc is Windows only and valgrind is Unix only. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |