[Haskell-cafe] Re: Haskell maximum stack depth
Simon Marlow
simonmarhaskell at gmail.com
Thu Feb 14 09:15:07 EST 2008
Stefan O'Rear wrote:
> On Mon, Feb 04, 2008 at 10:13:12PM +0000, Adrian Hey wrote:
>>> Also
>>> remember that this behaviour never wastes more than 50% of the stack,
>>> which is a relatively small amount.
>> Only if the stack is relatively small. Would you say the same about
>> heap, or about a stack that only needed 50% of heap space but ended
>> up using all of it? Or money? Using twice as much as you need of
>> anything is bad IMO.
>
> Apparently you don't realize that GHC normally uses twice as much heap
> as is needed, due to the decision to use a two-space copying collector
> by default for the oldest generation. :)
Three times in fact, on average.
If the old generation contained L live data at the last collection, it is
allowed to grow to 2L before being collected again. If it still has L live
data at the next collection, L is copied, giving you a total requirement of
3L for a major collection. Compacting GC reduces this to 2L, because the
live data is not copied.
The factor of 2 is tunable using +RTS -F.
Cheers,
Simon
More information about the Haskell-Cafe
mailing list