Thread GC non "stop-the-world"

Wyatt via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 25 06:55:40 PDT 2014


On Wednesday, 24 September 2014 at 20:15:52 UTC, Oscar Martin 
wrote:
> On Wednesday, 24 September 2014 at 08:13:15 UTC, Marc Schütz 
> wrote:
>>
>> There can also be a shared _and_ a local GC at the same time, 
>> and a thread could opt from the shared GC (or choose not to 
>> opt in by not allocating from the shared heap).
>
> Yes, a shared GC should be a possibility, but how you avoid the 
> "stop-the-world" phase for that GC?
>
> Obviously this pause can be minimized by performing the most 
> work out of that phase, but after seeing the test of other 
> people on internet about advanced GCs (java, .net) I do not 
> think it's enough for some programs
>
> But hey, I guess it's enough to cover the greatest number of 
> cases. My goal is to start implementing the thread GC. Then I 
> will do testing of performance and pauses (my program requires 
> managing audio every 10 ms) and then I might dare to implement 
> the shared GC, which is obviously more complex if desired to 
> minimize the pauses. We'll see what the outcome

This thread reminds me again of a paper I read a few months ago 
with a clever way of dealing with the sharing problem while 
maintaining performance: 
https://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/local-gc.pdf

The caveat for D being this design requires read and write 
barriers and I'm pretty sure I recall correctly that those have 
been vetoed several times for complexity.

-Wyatt


More information about the Digitalmars-d mailing list