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
