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