Easy & huge GC optimizations
Rainer Schuetze via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 23 11:14:25 PDT 2014
On 23.05.2014 18:41, Etienne wrote:
> On 2014-05-23 12:33 PM, Etienne wrote:
>> It only skips the inner search of the pool, like marking it NO_SCAN if a
>> sample of the pointers that pointed to it are still alive.
>
> Sorry that's not true.
>
> It's like marking it NO_INTERIOR while it being still SCAN. By default,
> all the pages would be marked if the sample pointers to the pool are
> still alive.
Ok, so based on the samples, you skip fine grained marking of the
objects inside the pool. The memory still needs to be scanned for
references, though.
I don't think this buys you a lot. You will have to scan more memory
than when you can skip allocations that are no longer referenced.
BTW: How do you detect the sample pointers are alive? Or do you mean
just the roots?
>
> And so the objective is to be able to skip collections. How many
> collections are executed only to recover only 1-2% of the memory?
I agree it would be good to have a measure to detect if it makes sense
to run the full collection at all. I don't see how the sample pointers
help here.
More information about the Digitalmars-d
mailing list