|
Re: Re[2]: Questions on changing Chicken runtime and some other stuff: msg#00098lisp.scheme.chicken
On 12/21/05, John Cowan <cowan@xxxxxxxx> 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 |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Re[2]: Questions on changing Chicken runtime and some other stuff: 00098, John Cowan |
|---|---|
| Next by Date: | Misc questions: 00098, Kon Lovett |
| Previous by Thread: | Re: Re[2]: Questions on changing Chicken runtime and some other stuffi: 00098, John Cowan |
| Next by Thread: | srfi-66 and r6rs-libraries eggs: 00098, felix winkelmann |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |