Am 03.06.2014 09:35, schrieb Rainer Schuetze:
Hi,

more GC talk: the last couple of days, I've been experimenting with
implementing a concurrent GC on Windows inspired by Leandros CDGC.
Here's a report on my experiments:

http://rainers.github.io/visuald/druntime/concurrentgc.html

tl;dr: there is a working(?) partially concurrent GC here:
https://github.com/rainers/druntime/tree/concurrent_gc2
but it eats a whole lot of memory.

Rainer

This sounds quite promising.

Did you think about using a write barrier instead of doing the chech per page? Because the way you propose will mean, that all writes, no matter if relevant for the GC or not, will cause the GC to reconsider the page. If we implement a write barrier into the front end that only gets called when a write through a pointer to a pointer happens, the GC could only rescan memory blocks that actually have changed pointers. Also the GC might be able to remember the old pointer value before the write is execued resulting in a consitent snapshot of the heap, which would eliminate the need to rescan after the background thread is finished.

Kind Regards
Benjamin Thaut

Reply via email to