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