Skip to content
  • Simon Marlow's avatar
    Implement a new heap-tuning option: -H · 32395093
    Simon Marlow authored
    -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.
    32395093