scheme vs common lisp
Douglas Thomas Crosher
Sun, 22 Mar 1998 20:07:20 +1000 (EST)
> * One strong point of CMUCL is the potential of its object
> represention scheme to perform well at basic list allocation and
> garbage collection. Do you know the memory allocation overhead for a
> basic cons object in RScheme, which is 8 bytes in CMUCL?
After reading the implementation notes for RScheme; every object in
RScheme has a two word header so a cons object uses 16 bytes of memory
or twice as much as CMUCL, although CMUCL instances similarly have an
effective word header.
Chapter 5 of the implementation notes of RScheme regarding the use of
safe points suggests this may need a rethink for a higher performance
base: "In principle, safe points probably slow a system down
significantly. ... For a system like RScheme which is not likely to
every be that fast, the overhead is not that great."
CMUCL does need to execute some code atomically which has some
overhead but by appropriate code generation and a tight coupling with
the garbage collector it is possible to GC at most points.