Related articles |
---|
Best Ref-counting algorithms? lerno@dragonascendant.com (=?ISO-8859-1?Q?Christoffer_Lern=F6?=) (2009-07-12) |
Re: Best Ref-counting algorithms? haberg_20080406@math.su.se (Hans Aberg) (2009-07-13) |
Re: Best Ref-counting algorithms? lerno@dragonascendant.com (=?ISO-8859-1?Q?Christoffer_Lern=F6?=) (2009-07-13) |
Re: Best Ref-counting algorithms? cr88192@hotmail.com (BGB / cr88192) (2009-07-13) |
Re: Best Ref-counting algorithms? torbenm@pc-003.diku.dk (2009-07-14) |
RE: Best Ref-counting algorithms? quinn_jackson2004@yahoo.ca (Quinn Tyler Jackson) (2009-07-14) |
Re: Best Ref-counting algorithms? lerno@dragonascendant.com (=?ISO-8859-1?Q?Christoffer_Lern=F6?=) (2009-07-14) |
Re: Best Ref-counting algorithms? haberg_20080406@math.su.se (Hans Aberg) (2009-07-14) |
Re: Best Ref-counting algorithms? georgeps@xmission.com (GPS) (2009-07-14) |
Re: Best Ref-counting algorithms? gneuner2@comcast.net (George Neuner) (2009-07-14) |
Re: Best Ref-counting algorithms? DrDiettrich1@aol.com (Hans-Peter Diettrich) (2009-07-15) |
[30 later articles] |
From: | torbenm@pc-003.diku.dk (Torben =?iso-8859-1?Q?=C6gidius?= Mogensen) |
Newsgroups: | comp.compilers |
Date: | Tue, 14 Jul 2009 09:45:56 +0200 |
Organization: | Department of Computer Science, University of Copenhagen |
References: | 09-07-018 |
Keywords: | GC |
Posted-Date: | 14 Jul 2009 09:38:52 EDT |
Christoffer Lernv <lerno@dragonascendant.com> writes:
> If one would like to implement a fast GC using refcounting, should I
> implement something like in those papers, or are there better
> algorithms out there?
If you want to implement a fast GC, you should not use refcounting. The
main problem with refcounting is that an assignment to a pointer
variable (which would otherwise just be a register-to-register transfer)
requires two memory reads, two memory writes and a conditional jump, so
it stresses the memory system far more than most other GC algorithms.
Refcounts should, IMO, only be used in the following circumstances:
- Operations on heap pointers are very rare, so even a slow GC doesn't
matter in the overall picture.
- You need hard real-time guarantees.
- The heap is shared between processes/processors with no central
control.
So refcounts are fine for such things as shared libraries (you don't
very often add or delete references to these), but for a functional or
OO language where you have many small heap structures with short
lifetimes, it will give massive overhead.
Torben
Return to the
comp.compilers page.
Search the
comp.compilers archives again.