GC trouble [was Re: Binary IO]

Simon Marlow simonmar at microsoft.com
Sat Apr 23 17:55:41 EDT 2005


On 23 April 2005 20:12, Jan-Willem Maessen wrote:

> Hmm; this sounds like a lot of full-heap collections, which is exactly
> what generational GC is trying to avoid.  A very large old generation
> (like, say, 500+Mb) might help a lot in this instance; I have no idea
> how GHC decides generation sizes.  It might also help to set a very
> large allocation area to reduce promotion rate to the second
> generation, and give the gobs of transient data some time to die---or,
> similarly, to increase the number of generations to increase the time
> it takes things to get to the old generation.  Fundamentally, though,
> when you run really close to your memory limits GC tends to be
> unhappy. 

For a program with this much data, GHC's default allocation area size of
256k is pretty small.  In fact, it's pretty small full stop - I recently
bumped it to 512k.  I suggest trying -A1m at least.

I'd be interested to know whether you get better results by tweaking any
of the other GC settings: more generatsions and more steps in
particular.

Cheers,
	Simon


More information about the Libraries mailing list