More radical ideas about gc and reference counting
Martin Nowak via Digitalmars-d
digitalmars-d at puremagic.com
Mon May 12 15:15:27 PDT 2014
On 05/11/2014 08:18 PM, Rainer Schuetze wrote:
>
> 1. Use a scheme that takes a snapshot of the heap, stack and registers
> at the moment of collection and do the actual collection in another
> thread/process while the application can continue to run. This is the
> way Leandro Lucarellas concurrent GC works
> (http://dconf.org/2013/talks/lucarella.html), but it relies on "fork"
> that doesn't exist on every OS/architecture. A manual copy of the memory
> won't scale to very large memory, though it might be compressed to
> possible pointers. Worst case it will need twice as much memory as the
> current heap.
There is a problem with this scheme, copy-on-write is extremely
expensive when a mutation happens. That's one page fault (context
switch) + copying a whole page + mapping the new page. It's much worse
with huge pages (2MB page size).
More information about the Digitalmars-d
mailing list