Add +RTS -AL<size>
authorSimon Marlow <marlowsd@gmail.com>
Sun, 24 Apr 2016 20:31:55 +0000 (21:31 +0100)
committerSimon Marlow <smarlow@fb.com>
Wed, 4 May 2016 12:30:30 +0000 (05:30 -0700)
commitf703fd6b50f0ae58bc5f5ddb927a2ce28eeaddf6
tree354f1ae4f9dd047c2f1f12f25e00d34ee7797e30
parent76ee260778991367b8dbf07ecf7afd31f826c824
Add +RTS -AL<size>

+RTS -AL<size> controls the total size of large objects that can be
allocated before a GC is triggered.  Previously this was always just the
value of -A, and the limit mainly existed to prevent runaway allocation
in pathalogical programs that allocate a lot of large objects.  However,
since the limit is shared between all cores, on a large multicore the
default becomes more restrictive, and can end up triggering GC well
before it would normally have been.

Arguably a better default would be A*N, but this is probably excessive.
Adding a flag lets you choose, and I've left the default as it was.

See docs for usage.
docs/users_guide/runtime_control.rst
includes/rts/Flags.h
rts/RtsFlags.c
rts/sm/Storage.c