On Tue, Aug 6, 2013 at 8:50 PM, Bennie Kloosteman <[email protected]>wrote:

> Why a sub heap and not a seperate heap  ? Or is it because its still under
> the GCs nominal control ?
>

At the time I wrote that, I was considering this as a problem of how to
subset the GC heap. In that frame, thinking of it as a sub-heap seemed to
make sense.

Ultimately, there are no separate heaps. At a certain level, all objects
live in some portion of the heap and need sufficiently compatible semantics
for a single set of pointer types to make sense. The minute you can have a
pointer from one "separate heap" to another you have a single heap again.


> **
> Why do we need ARC at all in the automatic system , since It can be  slow
> for the non single threaded cases. ?
>

I raised ARC in the context of trying to avoid mark/sweep overheads on
sub-heaps. If you aren't marking in a sub-heap, you need something that
lets you know when to release. ARC is one possibility. This is one of
several possible approaches to reducing the tenured churn problem.


>  ...why is the pauseless GC not doing it on a separate heap?
>

Again, I don't think there *is* a separate heap. As to why pauseless GC
doesn't solve this:

1. We don't have a readily available pauseless GC implementation, and we
don't know whether such an implementation is feasible on a weakly
consistent memory.
2. If we *know* a region has certain liveness properties, there is no
reason to trace it, regardless of the tracing technology. Pauseless
concurrent GC may "keep up", but it still places a workload on the CPU and
the memory subsystem. Techniques that let us reduce that work help us for *
any* GC technology, and are worth exploring for that reason.

In terms of relieving the GC regions , type aware heaps seem more promising.
>

The early research showed some fairly bad fragmentation issues with
type-aware heaps, and I think you may be under-rating the problems that can
arise when pointers you thought were dead become valid again through
reallocation.


> Not many type safe  languages that allow these sort of things done in a
> lib ..
>

Who said anything about doing this stuff in a library?


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to