garbage collection

Simon Marlow simonmar at microsoft.com
Sat Apr 23 18:44:06 EDT 2005


On 22 April 2005 13:26, Bulat Ziganshin wrote:

>> I see (I think).  Unfortunately currently the size of the allocation
>> area is fixed after a GC, so you'll have to change the code in the
>> runtime to keep allocating more blocks for the nursery.
> 
> so that it is either impossible or too hard, as i understand you?

Neither, it just means someone has to write some code :-)

>>> i don't see resons why this can be slower. we will be a "good
>>> citizens" - return memory what is not used at current moment and
>>> reallocate memory when needed.
> 
>> It might be slower because it involves extra calls to the kernel to
>> free/allocate memory, and the kernel has to update its page tables.
> 
> it is very fast, at least in my win xp (120 thousands of 1-mbyte
> blocks are unmapped/mapped in one second!

That doesn't sound too fast to me...

> so, the best solution, i think, will be current one + madvise for
> systems that supports it + one small but major change: current code
> switches to compacting when more than 30% of
> RtsFlags.GcFlags.maxHeapSize is used. it must calculate 30% of
> PHYSICAL memory while maxHeapSize is developed to limit VIRTUAL memory
> usage

I don't understand that comment... there's no difference between
physical and virtual memory outside the kernel.

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list