[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