Thread overview
GC again
Nov 27, 2006
Craig Black
Nov 28, 2006
Craig Black
November 27, 2006
Coming from a C++ background, I don't know a lot about GC.  Today I was looking at the new features in Mono .NET 1.2.  They use a Boehm GC link D's. But in 1.2, it was improved.   Here's the quote:

Garbage Collector: We now use Boehm GC in precise mode as opposed to fully conservative mode. We also use it with a precise set of GC roots which greatly improved Garbage Collection performance.

What does this mean and how hard would it be for D to do this as opposed to doing a full generational GC?  Maybe we could do this as a short term improvement while we wait for a generational GC in the long term.

-Craig


November 27, 2006
> Garbage Collector: We now use Boehm GC in precise mode as opposed to fully conservative mode. We also use it with a precise set of GC roots which greatly improved Garbage Collection performance.

The explanation on wikipedia are a good starting point http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29

> What does this mean and how hard would it be for D to do this as opposed to doing a full generational GC?  Maybe we could do this as a short term improvement while we wait for a generational GC in the long term.

At the moment the GC has no information, what values in memory are of pointer type, and which one are not. So he takes them all as pointers. This means conservative (vs. precise).

To do a precise GC, this information must be available and that will need support in the compiler.

To be precise is a precondition for a generational GC.



November 28, 2006
"Frank Benoit (keinfarbton)" <benoit@tionex.removethispart.de> wrote in message news:ekfj8p$v0o$1@digitaldaemon.com...
>
>> Garbage Collector: We now use Boehm GC in precise mode as opposed to
>> fully
>> conservative mode. We also use it with a precise set of GC roots which
>> greatly improved Garbage Collection performance.
>
> The explanation on wikipedia are a good starting point http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29
>
>> What does this mean and how hard would it be for D to do this as opposed
>> to
>> doing a full generational GC?  Maybe we could do this as a short term
>> improvement while we wait for a generational GC in the long term.
>
> At the moment the GC has no information, what values in memory are of pointer type, and which one are not. So he takes them all as pointers. This means conservative (vs. precise).
>
> To do a precise GC, this information must be available and that will need support in the compiler.
>
> To be precise is a precondition for a generational GC.

I was thinking something along those lines.  Thanks for clearing it up for me.

-Craig