Mon Nov 30 07:18:36 PST 2009 Simon Marlow <[email protected]>
* Implement a new heap-tuning option: -H
Ignore-this: 2089b9dfaf6c095dc0460cef39e9d586
-H alone causes the RTS to use a larger nursery, but without exceeding
the amount of memory that the application is already using. It trades
off GC time against locality: the default setting is to use a
fixed-size 512k nursery, but this is sometimes worse than using a very
large nursery despite the worse locality.
Not all programs get faster, but some programs that use large heaps do
much better with -H. e.g. this helps a lot with #3061 (binary-trees),
though not as much as specifying -H<large>. Typically using -H<large>
is better than plain -H, because the runtime doesn't know ahead of
time how much memory you want to use.
Should -H be on by default? I'm not sure, it makes some programs go
slower, but others go faster.
M ./includes/rts/Flags.h +1
M ./rts/RtsFlags.c -3 +8
M ./rts/sm/GC.c +4
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20091130151836-12142-bc0a5936bbce270061b137636ae4f76cfd50ac76.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc