Subj : Re: Memory reordering problem (or is it?) To : comp.programming.threads From : Joe Seigh Date : Wed Jun 15 2005 12:41 pm Giancarlo Niccolai wrote: > Joe Seigh wrote: > > >>Giancarlo Niccolai wrote: .... >>> >>>More can be found at: http://www.memorymanagement.org/ >>> >> >>I don't think any of them will be as efficient as RCU or SMR. Some of >>those GC algorithms seem to have horrific overhead that make SMR even with >>its full >>memory barriers look efficient. They seem to have this attitude that it >>is >>important to GC *everything* no matter what the cost. The only one that >>comes nearest is distributed reference counting where they just scan the >>thread >>stacks and refcount the heap. The problem with that is the only place >>it's safe to examine the stack is from the thread itself which has some >>problems. >> > > > More MODERN approaches (and generally, but not always, more efficient ones) > uses heuristic strategies (i.e. generational approaches) to determine where > the garbage is most likely to be, or i.e. partial reference counting to > provide the GC with an hint on what is more likely to need collections. > This all is explained at the pointer I gave; here I just explained the very > basic set of the very basic techniques used in the field... > > What is clear today is that probably there isn't the "perfect" collector, > and any collecting strategy that has been developed up to date has at least > one area of application in which it outperforms the others... or even in > the case that it is less efficient (algoritmically) than others, where it > is more "suited" to "do the job". > That link points to "everything" in that general area of GC. I'm not about to go read every single paper written on GC when I have a pretty good idea what the issues are and when those techniques don't really apply to the kinds of situations I'm interested in. The situations I'm interested in are the kinds JSR-166 was created to address since the GC in Java won't handle them efficiently no matter what GC implementation you put into Java. -- Joe Seigh When you get lemons, you make lemonade. When you get hardware, you make software. .