More radical ideas about gc and reference counting
via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 13 12:42:01 PDT 2014
On Tuesday, 13 May 2014 at 17:22:19 UTC, Steven Schveighoffer
wrote:
> The idea I had was to make them pause-on-write. This means,
> when the original process attempts to write to the page, it
> gets a page-fault, which pauses the thread until the collector
> is done with it. This causes the same halting that normally
> happens with stop-the-world, but only on-demand, instead of
> preemptively. If a thread is doing only reads, or is only
> touching non-Scanned memory, it continues.
That would require a separate page table and would freeze threads
real fast for global GC. It can work for local heaps like caches?
I guess you could set up shared memory between two processes and
use that as your heap.
> Just an idea, I make no claims to its actual benefits :)
Another idea is to use transactions and roll back the collector
if someone does a write, for small heaps with few writes...
Principle: run the collector when a core is idle and yield to
cores that do real work.
But I dont think current gen CPUs can handle big transactions...
More information about the Digitalmars-d
mailing list