On 2016-01-06 16:35-0000 Phil Rosenberg wrote:

> You should now have a working version on Linux. It certainly seems to
> work on my CentOS machine.

Yep. Works fine here with no build or run-time problems other than the
idle issue(s) which I document below for this (commit 4677df1) version
of wxwidgets.

Here are the additional local changes I made to make example 00 pure
line graphics with no text, example 23 pure ascii text with no
graphics, and a given example (in this case example 00, but I
modified it to example 23 for the example 23 tests) is repeated 19
times (10 times for the example 23 case) when building the
test_c_<interactive device> target.

==================
diff --git a/examples/c/x00c.c b/examples/c/x00c.c
index aa4683c..1aaa4f2 100644
--- a/examples/c/x00c.c
+++ b/examples/c/x00c.c
@@ -44,8 +44,8 @@ main( int argc, const char *argv[] )
      plinit();

      // Create a labelled box to hold the plot.
-    plenv( xmin, xmax, ymin, ymax, 0, 0 );
-    pllab( "x", "y=100 x#u2#d", "Simple PLplot demo of a 2D line plot" );
+    plenv( xmin, xmax, ymin, ymax, 0, -2 );
+    //pllab( "x", "y=100 x#u2#d", "Simple PLplot demo of a 2D line plot" );

      // Plot the data that was prepared above.
      plline( NSIZE, x, y );
diff --git a/examples/c/x23c.c b/examples/c/x23c.c
index 5dddf3b..3b67a60 100644
--- a/examples/c/x23c.c
+++ b/examples/c/x23c.c
@@ -229,6 +229,7 @@ main( int argc, const char *argv[] )

      plinit();

+#if 0
      for ( page = 0; page < 11; page++ )
      {
          pladv( 0 );
@@ -292,6 +293,7 @@ main( int argc, const char *argv[] )
      printf( "For example 23 prior to page 12 the FCI is 0x%x\n", fci_old );
      printf( "For example 23 prior to page 12 the font family, style and 
weight are %s %s %s\n", family[ifamily], style[istyle], weight[iweight] );

+#endif
      for ( page = 11; page < 16; page++ )
      {
          PLFLT dy = 0.030;
diff --git a/plplot_test/test_c_interactive.sh.in 
b/plplot_test/test_c_interactive.sh.in
index 6e6ceea..3736a0a 100755
--- a/plplot_test/test_c_interactive.sh.in
+++ b/plplot_test/test_c_interactive.sh.in
@@ -27,12 +27,12 @@
  lang="c"
  export index lang

-if [ "$device" = "xcairo" -o "$device" = "qtwidget" ] ; then
+if [ "$device" = "xcairo1" -o "$device" = "qtwidget1" ] ; then
      # Temporarily drop example 17 for xcairo and qtwidget because those 
drivers are
      # so horribly slow for such interactive plots.
      INDEX="01 04 08 14 16 24 30"
  else
-    INDEX="01 04 08 14 16 17 24 30"
+    INDEX="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
  fi
  for index in $INDEX; do
      if [ "$verbose_test" ] ; then
==================

Please look at the attached screenshots of results from my system
monitor.  The only relevant part to look at is the cpu history, and
all these results were obtained by running X on the same computer
where the desktop software was running.

I. Pure line graphics results from 19 repetitions of modified example 00.

Ia. Comments on screenshot_others00.png

The three major peaks here correspond to building the three separate
targets test_c_xwin, test_c_xcairo, and test_c_qtwidget.  Each of
these targets completes the 19 runs of modified example 00 in
respectively 2.5, 2.9, and 4.0 seconds.  These numbers are confirmed
by the relative width of each of the major 3 peaks.

Ib. Comments on screenshot_wxwidgets00.png

This is my primary evidence of the idle problem(s) for a pure line
graphics case (modified 00 example).

This cpu history corresponds to several minutes of building the
test_c_wxwidgets target for the second time (so that all prerequisites
are built, and everything relevant is in memory).

The initial large peak corresponds to the cpu time that cmake requires
to run through all the dependencies of the target to insure they have
all been built.  That peak is then followed by 11 more peaks as -dev
wxwidgets runs through 11 of the 19 example 00 repetitions before I
had to take the screenshot so as not to miss the first peak.  You can
see for each of these examples both my cpus are engaged, and a given
repetition consists of mostly idle time of wildly different durations
with one modest peak of cpu(s) activity per repetition.  It turns out
these modest peaks correspond to exactly when the wxPLViewer GUI is
visible on the screen (although it just displays a black screen during
that time because of the -np issue with wxPLViewer). From the random
duration of the idle times for each repetition the figure for the
total time that all 19 repetitions take is quite variable. However,
the one time I had the patience to measure the time required for the
full 19 the result was 467 (!) seconds which is more than two orders
of magnitude larger than corresponding example 00 results for three
other interactive devices that I give above.

II. Pure ascii text results from 10 repetitions of modified example 23.

IIa. Comments on screenshot_others23.png

The three major peaks here correspond to building the three separate
targets test_c_xwin, test_c_xcairo, and test_c_qtwidget.  Each of
these targets completes 10 runs of modified example 23 in
respectively 3.3, 4.3, and 5.4 seconds.  These numbers are confirmed
by the relative width of each of the major 3 peaks.

Comments on screenshot_wxwidgets23.png

This is my primary evidence of the idle problem(s) for a pure ascii text
case (modified 23 example).

This cpu history corresponds to several minutes of building the
test_c_wxwidgets target for the second time (so that all prerequisites
are built, and everything relevant is in memory).

The initial large peak (all of which is clipped off on the left except
for the trailing part) corresponds to the cpu time that cmake requires
to run through all the dependencies of the target to insure they have
all been built.  That peak is then followed by 8 more peaks as -dev
wxwidgets runs through 8 of the 10 example 23 repetitions before I had
to take the screenshot so as not to miss all of the first peak.  The
remarks I made concerning variability of idle time, coincidence of the
peaks with GUI display for screenshot_wxwidgets00.png all apply for
this case as well. The one time I measured the time required for the
full 10 repetitions the result was 113 seconds or more than an order
of magnitude more than the corresponding example 23 results for three
other interactive devices that I give above, but almost an order of
magnitude less than the modified example 00 case for wxwidgets.

In sum, it appears that we may have at least two separate idle issues
left on Linux for -dev wxwidgets since the time required to get
through the repeated modified x00 example is roughly equivalent to the
corresponding time taken for the repeated x23 example for the other
interactive devices, but almost an order of magnitude slower for
repeated x00 versus repeated x23 for the wxwidgets device.

So the biq question is can you replicate these results (at least the
one or two order of magnitude differences in relative total times
involved to run these various targets) on your own two Linux systems
or are they idiosyncratic to my Debian jessie platform?

Assuming you can replicate, then good luck on the bug hunt to find
the source of these Linux idle issues.

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

Reply via email to