A separate GC idea - multiple D GCs

IGotD- nise at nise.com
Sat Jan 22 11:25:30 UTC 2022


On Saturday, 22 January 2022 at 10:05:07 UTC, rikki cattermole 
wrote:
>
> 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 
there.

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 
memory.

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 mailing list