On 12/21/05, John Cowan <[EMAIL PROTECTED]> wrote:
> felix winkelmann scripsit:
>
> > Once data is in the heap,
> > it is handled in a standard stop-and-copy manner with two semispaces between
> > which data is copied back and forth on every major collection.
>
> So, a classic Baker GC.  The trouble with those is, of course, that really
> long-term data gets copied over and over and over ....  Have you considered
> having a third generation of stuff that survives N semispace flips and then
> is never GCed again?  This would require a write barrier in the second
> generation as well, of course; but this seems to have worked well for
> Smalltalk implementers.

The problem with such an approach is that you can never really be sure
whether some long-living data object is really going to stay forever (imagine
long-running servers). What one *could* do, though, would be to use
conservative GC (i.e. Boehm) for the very long-lived data. Now we just have to
find an extra slot to store a gc-count in...
But you are right: that copying does certainly cost performance and thrashes
caches heavily.


cheers,
felix


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to