[xmlp] the recent garbage collector performance improvements

Jacob Carlborg doob at me.com
Fri Feb 3 00:30:36 PST 2012

On 2012-02-03 05:01, H. S. Teoh wrote:
> On Thu, Feb 02, 2012 at 08:48:20PM -0600, Robert Jacques wrote:
> [...]
>> So to answer your question, yes, someone has made one of these types
>> of GC for D called CDGC. No, it doesn't look like Windows will support
>> this anytime soon.  And cloning GCs, don't solve the problems of large
>> heaps, soft/hard realtime issues like game render threads, and it
>> actually makes the embarrassingly long pause (when they happen)
>> longer. Now, CDGC, as I understand it, is better written than our
>> current GC and would probably improve things, but I don't see it as
>> the final end goal.
> To me, the final goal should be to make the GC swappable, that is,
> there's a way to tell the compiler which GC you want to use.
> After I got convinced about the benefits of GC by the article on garbage
> collection in DPLO, I started reading up a bit about different GC
> algorithms, and my conclusion is that there is no such thing as a
> one-size-fits-all GC.  Every GC algo out there is sensitive to the kind
> of allocations the program makes, and the memory/speed constraints
> you're running under. So the real solution to GC performance problems is
> to make it swappable. Today, for instance, I found a book that talks
> about a hard real-time GC, which is very different from the paper I
> mentioned earlier.
> The point is, if you want hard real-time guarantees, it should be
> possible to tell the compiler to use a GC that gives you that, and if
> you're OK with soft real-time, then you can tell the compiler to use
> something like CDGC. And if you're writing a batch-processing program
> you can use a GC with a long STW pause but better overall throughput.
> Anyway, I found the blog of the guy who implemented CDGC, and it seems
> that it did quite well performance-wise at the end. Apparently it's in
> an experimental D2 branch; anyone tried to use it recently?
> T

The GC is already swappable during linking.

/Jacob Carlborg

More information about the Digitalmars-d mailing list