[Openmcl-devel] Lisp Comparison

Rainer Joswig joswig at lisp.de
Wed Apr 19 01:31:45 PDT 2017

> Am 19.04.2017 um 05:39 schrieb Craig Lanning <craig.t.lanning at gmail.com>:
> On Tue, 2017-04-18 at 16:34 -0700, David McClain wrote:

> Yes, all code is compiled.  No code is run interpreted.  It is designed
> the way it is specifically for that reason.

Things I would usually look for:

* is everything compiled?

* slow stream I/O

* slow unbuffered stream I/O
  -> for example when reading lines allocating a new string for each line
  -> or generally unbuffered streams with a lot of character operations

* slow CLOS-based stream I/O -> in CCL CLOS based streams are usually slower than non-CLOS streams

* slow unicode stream operations

* slow unicode string operations

* repeated translation between character representations in strings

* excessive consing / slow garbage collection time -> use TIME to see the GC time

* excessive FLOAT consing -> CCL needs more declarations / tricks

* forgotten calls to the sleep function ;-)

* lots of background output/logging/tracing, debug options enabled

* time sensitive functions compiled with the wrong compiler optimizations

* tail calls not optimized, when needed

* algorithmic problems in user code or in the implementation: n^2 or worse complexity
  -> consing to the end of a list
   -> copying arrays in loops
   -> adjusting strings by one element

More information about the Openmcl-devel mailing list