A separate GC idea - multiple D GCs
nise at nise.com
Sat Jan 22 11:25:30 UTC 2022
On Saturday, 22 January 2022 at 10:05:07 UTC, rikki cattermole
> This isn't what I had in mind.
> By telling the GC about fibers, it should be able to take
> advantage of this information and limit the time it takes to do
> stop the world scanning.
> If it knows memory is live, it doesn't need to scan for it.
> If it knows that memory isn't referenced in that fiber anymore,
> then it only needs to confirm that it isn't anywhere else.
Does C# have thread pinned GC memory? I haven't seen anything
that you need to "move" the memory to other threads in that
language but I don't really know what is going on under the hood
D is very similar to C# and tries to copy its primitives and is
one of the reasons D is nice to use. Manually moving memory
around will have an effect on how the language looks and ease of
use. Another thing is that thread pinned memory doesn't work well
with thread pools as any thread in a pool might tamper with the
In general, tracing GC doesn't scale well with large amount of
memory. I would rather go with something similar to ORC in Nim in
order to reduce the tracing.
More information about the Digitalmars-d