Re: half flips
James McCartney <[email protected]> Wed, 4 Aug 2004 14:06:54 -0700
| Newsgroups | gmane.comp.programming.garbage-collection.general |
|---|---|
| Message-ID | <[email protected]> |
On Aug 3, 2004, at 10:07 PM, Mark Stuart Johnstone wrote: > We allocated black so that they would not be scanned in the current > marking process. This gives them a little time to die. We were thus > using the huristic that an existing object is likely to point to > several new objects in turn. If we allocate these black, we don't > have to scan them during the current marking phase. But you do have to scan any white objects that get installed into these black objects. I would say in most programming languages it is the case that new objects are created and are immediately initialized with old objects. And that this is far more frequent than old objects having new objects being written into them. So I think for programming language implementations that allocate black is not a good strategy. > We were assuming > that there would be cases where a data structure is built and dies > before the next marking phase starts. If you allocate white then there is also a chance you will never scan it if it becomes garbage during the collection cycle. The idea with half flips is not having to rescan the root objects, that you know will be alive, every cycle. > As to whether this is actually > any better than allocating white, we have no data (read: your guess is > as good as mine 8-). -- --- james mccartney [email protected] <http://www.audiosynth.com> SuperCollider - a real time audio synthesis programming language