Thread GC non "stop-the-world"

Oscar Martin via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 25 14:20:56 PDT 2014


On Thursday, 25 September 2014 at 13:55:42 UTC, Wyatt wrote:
> 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

An interesting paper. Thank you very much


More information about the Digitalmars-d mailing list