Re: Daily gclist MIME digest V5 #121
Mingnan Guo <[email protected]> Wed, 13 Jan 2010 01:53:52 +0800 (CST)
| Newsgroups | gmane.comp.programming.garbage-collection.general |
|---|---|
| Message-ID | <[email protected]> |
Eliot, "Fully Concurrent" sounds much better, I like it. and thank you very much for your support. kind regards, - Mingnan Guo --- On Mon, 1/11/10, Eliot Moss <[email protected]> wrote: > From: Eliot Moss <[email protected]> > Subject: Re: [gclist] Daily gclist MIME digest V5 #121 > To: "Mingnan Guo" <[email protected]> > Cc: "Erez Petrank" <[email protected]>, [email protected] > Received: Monday, January 11, 2010, 5:37 PM > On 1/11/2010 6:52 PM, Mingnan Guo > wrote: > > Hi all, > > > > I want to say something about the terminology of > "Concurrent", "On-The-Fly" and "Full Concurrent". > > > > Many technical papers have used the term "Concurrent" > and "On-The-Fly" regarding stack scanning as: > > > > "Concurrent garbage collectors run concurrently with > the application and only stop it for a short synchronization > phase in the beginning or end of the collection. On-the-fly > collectors are special concurrent collectors that never need > to stop all threads simultaneously. They stop the > application one thread at a time typically for scanning the > thread runtime stack" > > > > However, some concurrent GC algorithms do not perform > stack scanning at all. As far as I know, there are at least > two implementations of that kind of GC. One is HnxGC based > on reference counting, another one is not reference counting > based. These kinds of GCs are so much different from those > "Concurrent" and "On-The-Fly" on stack scanning. So, using a > different terminology, such as "Full Concurrent", is more > appropriate for these GC algorithms to avoid confusion. For > example, > > > > "Full Concurrent garbage collectors run concurrently > with the application and behave like usual application > threads, which never involuntarily stop other threads except > for debug purpose." > > > > Any comment? Thanks, > > > > -Mingnan Guo > > In slightly more colloquial English, I would say "Fully > Concurrent". > > Concerning "Concurrent" versus "On-the-fly", I would agree > that the > difference is whether all threads are stopped at once. It > is indeed > possible to write collectors where the mutators never need > to block > (unless storage is exhausted; with adequate resources, > bounds on > mutator allocation rate, etc., it is possible to avoid > storage > exhaustion). However, such approaches may need more > frequent or > more costly read or write barriers in the mutators. > Reference > counting meeds to be augmented with a cycle collector, and > in > general you may still need to support compaction in order > to > repair fragmentation .... > > Best wishes -- Eliot Moss >