[Gc] Re: Problems with GC_size_map

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Feb 1 07:27:07 PST 2010

On Mon, Feb 1, 2010 at 4:05 PM, Juan Jose Garcia-Ripoll <
juanjose.garciaripoll at googlemail.com> wrote:

> * I also played with custom marking procedures to avoid the bitmap, but I
> did not manage to get it working. Somehow the mark code got stuck. I also
> read the documentation and says it is not recommended to use custom marking
> because code is slow due to lack of inlining. Is this true, or are there
> simple examples showing how to properly use this technique?

I forgot to mention one thing. This implementation uses an interpreter stack
(not native, C stack) and several other stacks that may get rather large.
The garbage collector is configured not to scan DLLs, and the set of roots
is cleared after initialization. All roots are identified by our
implementation using a custom value of GC_push_other_roots. This gains us
that not all the stack is scanned, only the part that is used by the

However I suspect we could do much better by identifying really which values
in the interpreter stack are pointers and which are temporary data, such as
integers, etc. How can I do that? Would it help? Would the resulting code be
too slow, for the same reasons that are mentioned in the header about custom
marking procedures?


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/20100201/b795a06b/attachment.htm

More information about the Gc mailing list