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

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to