Is a moving GC really needed?

Lionello Lunesu lio at lunesu.remove.com
Mon Oct 2 03:07:28 PDT 2006


Chris Miller wrote:
> On Mon, 02 Oct 2006 05:23:11 -0400, Lionello Lunesu 
> <lio at lunesu.remove.com> wrote:
> 
>> I've noticed that some design decisions are made with the possibility 
>> of a moving GC in mind. Will D indeed end up with a moving GC? If so, 
>> why? Is a moving GC really worth the extra trouble?
>>
>> Being able to move memory blocks reduces memory fragmentation, am I 
>> correct? Is this the only reason? (For the remainder of this post, I'm 
>> assuming it is.)
>>
> 
> I believe it allows for very fast allocations, almost as fast as stack 
> allocation. This is something I'm very interested in.

Why would it allocate faster than a non-moving GC? (Ignoring for the 
moment the cost of moving.)

> It may also improve caching as allocated memory is more together.

This I understand, but what's the granularity (if that's the correct 
term) of a CPU cache?

http://en.wikipedia.org/wiki/CPU_cache#Example:_the_K8 : "The data cache 
keeps copies of 64 byte lines of memory."

I guess the chances are pretty low for two blocks to be moved close 
together and be cached together, and be accessed together..

L.



More information about the Digitalmars-d mailing list