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.

Reply via email to