CLIM mail archive

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

CLIM keeping X server busy



   Date: Wed 23 Mar 94 09:46:22-PST
   From: Mabry Tyson <TYSON@ai.sri.com>
   Mail-System-Version: <SUN-MM(229)+TOPSLIB(128)@AI.SRI.COM>

   Clim 1.1 (Lucid on Sun)

It might be useful to know if your program is using UPDATING-OUTPUT
and REDISPLAY; that may (or may not) have some bearing.

My guess -- and it is just a guess -- is that likely candidates are:
 (1) code the measures text size (the X client usually caches this
     information locally, so it shouldn't cost a round trip, but there
     might be some kind of CLIM or MacX problem)
 (2) there is a function called something like WINDOW-DRAWING-POSSIBLE
     and/or WINDOW-VISIBILITY.  In later versions of CLIM, these
     functions examine a locally cache piece of state, but there was a
     time when calling these functions cost a round trip.

Perhaps some Lucite might comment.

   I was running PPP and MacX to display X windows on my Powerbook and
   ran a Clim application on my Sparc-10.  The CLIM frame configuration
   is basically a menu on the left with 3 equal-sized windows taking up
   the rest of the screen (stacked vertically).  A chunk of text gets
   displayed in the top of those 3 windows (with scroll bars in both
   directions).  Only a few hundred characters of this text appear on the
   screen at any one time.  In the case of a 13K piece of text, it takes
   some 40 seconds to display (running on a Sparc-10, displaying via X on
   a different Sparc-10).

   I was attributing the slowness to the slowness of CLIM in updating its
   internal tables but then I noticed something strange.  My Mac has a bar that
   indicates the percentage of usage of the serial line (under MacX & PPP
   this is an indicator of how many packets are flowing back and forth)
   and it was pretty much pegged during the time that CLIM was recomputing
   what to display (but nothing changes on the visible screen after the first
   few seconds).  The mouse was motionless (over a menu item) and nothing was
   happening in other X windows.  Obviously I expected lots of packets to
   flow while I could see things changing on my powerbook screen but I was
   surprised to see packets continuing to flow once the viewport had been
   completely updated (but while the rest of the (invisible) CLIM display
   was being updated).

   It appears that CLIM was sending information to the X server even
   though nothing visible was changing.  I don't understand that.  Are
   the invisible portions of the display being cached on the X server?
   (I would have thought that CLIM was responsible for updating the
   display when you scroll or resize.)

   Is this an inefficiency that maybe could be fixed?  (I admittedly
   don't know how much faster CLIM's recomputing what to display would
   run if this were fixed.  Maybe it isn't much.)  The speed of CLIM in
   displaying text is my biggest disappointment in CLIM.
   -------


References:

Main Index | Thread Index