Hi Laurent: I have put my reply to you on list for obvious reasons.
On 2016-11-14 14:26+0100 Laurent Berger wrote: > Hi Alan, > > I would try to help you Thanks in advance for that. > but I'm not familiar on linux (see attached file for > version). >From what you included, your Linux platform has access to wxwidgets version 3.0 (as do I). But the rest of your platform (old Linux Mint distribution using a relatively old kernel version 3.2.0-2-amd64 compared to my much more modern Debian Jessie using a fairly up-to-date kernel version 3.16.0-4-amd64) provides an extremely useful testing contrast in case the issue is some lameness in the IPC implementation for my particular Linux kernel. (IPC, i.e., interprocess communication is used to communicate between -dev wxwidgets and the wxPLViewer application that displays the results.) > I think it is this message > (https://sourceforge.net/p/plplot/mailman/message/34744869/) Yes, that message and the following one that provided the screenshots referred to in that message are the relevant ones. > > I have build plplot on linux using cmake 3.0.2 using "Unix Makefiles" > Then sudo make install. I have attached git log result and cmakecache > Then I run in folder examples/c++ > ./x01c -dev wxdrivers > > I can see a window with 4 curves. Windows title is wxPLviewer. No problem > Now what do you want to test ? Speed. You measure speed on linux using, e.g., software@raven> time examples/c/x01c -dev wxwidgets -np PLplot library version: 5.11.1 real 0m0.652s user 0m0.064s sys 0m0.016s software@raven> software@raven> time examples/c/x01c -dev wxwidgets -np PLplot library version: 5.11.1 real 0m9.327s user 0m0.072s sys 0m0.008s That -np option stands for "no pause" and allows you to measure time without waiting for the human reaction of clicking on the GUI to finish the display. Those two measurements obviously have a huge difference in the real time used. The first timing is not too bad, but (by chance) the second timed run shows the problem which is quite often there is a random drop of at least an order of magnitude and sometimes two orders of magnitude in speed of communications between -dev wxwidgets and wxPLviewer due to excessive times when my cpus sit absolutely idle (as proved above by comparison of the sum of the user + sys times and the real time required to finish the example in the second time run). (This excessive idle time is also proved by my screenshots of my cpu meter that are referred to above.) The above results are for the current master branch tip. By way of comparison here are the consistent timing results I get for -dev xwin, -dev qtwidget (for Qt5), and -dev xcairo on my platform. software@raven> time examples/c/x01c -dev xwin -np PLplot library version: 5.11.1 real 0m0.482s user 0m0.008s sys 0m0.008s software@raven> time examples/c/x01c -dev xwin -np PLplot library version: 5.11.1 real 0m0.472s user 0m0.012s sys 0m0.004s software@raven> time examples/c/x01c -dev qtwidget -np PLplot library version: 5.11.1 libGL error: failed to authenticate magic 759 libGL error: failed to load driver: nouveau real 0m0.472s user 0m0.088s sys 0m0.012s software@raven> software@raven> time examples/c/x01c -dev qtwidget -np PLplot library version: 5.11.1 real 0m0.452s user 0m0.076s sys 0m0.020s software@raven> time examples/c/x01c -dev xcairo -np PLplot library version: 5.11.1 real 0m0.239s user 0m0.048s sys 0m0.012s software@raven> time examples/c/x01c -dev xcairo -np PLplot library version: 5.11.1 real 0m0.229s user 0m0.044s sys 0m0.012s If you get consistent timing results for -dev wxwidgets no matter how often you repeat the experiment and those timing results are within a factor of two of the timing results for one or more of the above interactive devices, then it is clear the IPC problem is likely due to some kernel issue on my Debian Jessie platform, and we can write off my timing results above to that cause. But if you also get wildly inconsistent and often extremely slow wxwidgets results for a completely different Linux kernel, then either IPC kernel implementations on Linux are uniformly bad regardless of kernel version (a conclusion which I doubt) or the way that -dev wxwidgets and wxPLviewer currently use IPC to communicate between them is set up in a bad way for the Linux case, that randomly causes excessive idle times, and that is an issue that the PLplot development team needs to urgently address if we ever want the wxwidgets device to be popular on Linux. I am looking forward to your reply with similar time experiments on your own Linux platform. 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 __________________________ ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel