Things that keep D from evolving?

thedeemon via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Feb 10 00:57:51 PST 2016


On Tuesday, 9 February 2016 at 17:41:34 UTC, NX wrote:

> I would want it to be solved rather than being worked on... 
> which requires design change which is probably not going to 
> happen. There is still room for improvement though.

Right. I think there are at least two things that can improve 
current GC without any changes in design: parallel marking and 
lazy sweeping. Currently (at least last time I checked) GC pauses 
the world, then does all the marking in one thread, then all the 
sweeping. We can do the marking in several parallel threads (this 
is much harder to implement but still doable), and we can kick 
the sweeping out of stop-the-world pause and do the sweeping 
lazily: when you try to allocate some memory it will not just 
look in free lists, it will try to collect some unused unswept 
memory from the heap first. This way allocations become a bit 
slower but GC pause time reduces significantly. Concurrent 
sweeping is another possibility.
Of course, it's all easier said than done, without an actual hero 
who would code this, it remains just talk.


More information about the Digitalmars-d-learn mailing list