[Gc] Re: Problems with GC_size_map

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Feb 1 15:51:02 PST 2010

On Tue, Feb 2, 2010 at 12:19 AM, Ludovic Courtès <ludo at gnu.org> wrote:

> In GNU Guile we use a custom mark procedure to achieve this, as was
> suggested by... you.  :-)
Actually, when I mentioned that I meant the GC_push_other_roots technique,
not a custom mark procedure for the stack data type -- which seems more
clever  by the way: if the garbage collector is capable of recognizing that
the stack has not changed then it should not mark it.

Regarding mis-identification, you are probably correct for the main stack,
but I have other stacks which are full of actual integers, not lsb-tagged
ones, as it is used in lisp interpreters.

In general I am worried that the garbage collector is performing rather bad
for a simple problem in which one builds and quickly discarding bignums --
pointerless memory, by the way --. Profiling shows that 80% of the time is
spent in the mark phase. This behavior is only present in 32-bits platforms.
For 64-bit linuxes and OS X, garbage collection times are reduced by a
factor of 3-4 and everything works smoothly, as in the best Common Lisp
implementations around. I am intuitively associating it to blacklisting and
false roots, which is why I am looking for more precise methods for
scanning, allocating memory, etc.


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://napali.hpl.hp.com/pipermail/gc/attachments/20100202/3c19efe8/attachment.htm

More information about the Gc mailing list