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