Analysis of D GC

Martin Nowak via Digitalmars-d digitalmars-d at puremagic.com
Sat Jun 24 08:31:21 PDT 2017


On Monday, 19 June 2017 at 22:35:42 UTC, Dmitry Olshansky wrote:
> My take on D's GC problem, also spoiler - I'm going to build a 
> new one soonish.
>
> http://olshansky.me/gc/runtime/dlang/2017/06/14/inside-d-gc.html
>
> ---
> Dmitry Olshansky

FYI, we've tried to improve the binary pool search, but there 
aren't many pools and it's quite hard to beat.
A hashtable for a pages in the address range is too big.
I'd like to replace all of those separate pools types with a 
single page heap, similar to what TCMalloc is using.
http://goog-perftools.sourceforge.net/doc/tcmalloc.html
http://jamesgolick.com/2013/5/19/how-tcmalloc-works.html

There was also https://github.com/dlang/druntime/pull/801 which 
got reverted.

One problem that you'll run into with a Thread cache is 
synchronizing GC attributes.
In the stalled work on a thread-cache for the current GC. Using 
single-reader single-writer queues to would've been an option 
there to reduce contention.

https://github.com/MartinNowakhttps://github.com/dlang/druntime/compare/master...MartinNowak:gcCache#commitcomment-16202536


More information about the Digitalmars-d mailing list