CLIM mail archive


Re: consing results

  Date: Tue, 10 May 1994 14:12:39 -0400
  From: "Scott D. Anderson" <>
  To: clim@BBN.COM
  Subject: consing results
  It would be nice if the functions didn't cons at all, but this is a great
  improvement, and I appreciate the help.
  What do I give up by using MEDIUM-DRAW- functions instead of the higher-level
  drawing functions?  It seems that all I give up is keyword arguments for things
  like ink, which instead have to be done by WITH-DRAWING-OPTIONS.  Anything else?
  Scott D. Anderson
>From my experiences with scigraph, some obvious performance issues
for graphics-intensive applications are:

0. Turn off output recording if you don't need it.

   Refer to the clim demo called custom-records.lisp.  In there are
   some fancy output records if you want fast output recording.

1. Processing drawing options as few times as possible (outside the
   inner drawing loop if there is one).  Corrolary: avoid the
   keyword arguments to the DRAW-** functions.

2. DRAW-** generally calls MEDIUM-DRAW-**.  Make yourself aware of
   how CLIM is layered, and use the lowest layer that you can.
   Scigraph shamelessly calls clim-internals::draw-line-internal
   for cases where output recording is turned off.

3. Ensure that stream coordinates are fixnums.  If they're floats,
   clim will use floating-point arithmetic (oh no!).

4. Avoid force-output.  It's tempting to use when output takes a long
   time, but it can add as much as an order of magnitude to total time.

5. Avoid incremental redisplay if you care about performance.

jeff morrill


Main Index | Thread Index