[gclist] What wrong with the GC in xemacs

Tom Tromey tromey@creche.cygnus.com
Wed, 3 Apr 1996 08:45:54 -0700


Nick> Looking at gc_sweep(), it seems that you are both partly
Nick> right. Cons cells are _not_ returned to the system. Neither are
Nick> floats, symbols, or "text intervals". Buffers &c _are_ allocated
Nick> differently. But unmarked buffers, vectors, large strings, and
Nick> string blocks _are_ returned to the system. Look for uses of
Nick> xfree()...

xfree() doesn't really return to the system, just to malloc's free
list.  When some REL_ALLOC is defined, buffers can actually be
returned to the system.  See ralloc.c.  I don't think this happens
with vectors and strings, but I could be wrong.

Nick> Yes, it is a recursive marker, but not purely recursive. In
Nick> particular, for lists it loops on the cdrs but recurses on the
Nick> cars.

Nick> Anyone feel like running some profiles?

On many systems, you can't profile Emacs because dumping and profiling
don't interact correctly.  Perhaps this is one reason that Emacs'
performance is poor.

Tom
-- 
tromey@cygnus.com                 Member, League for Programming Freedom