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