• blaze's avatar
    Make RTS keep less memory (fixes #14702) · 0171e09e
    blaze authored
    Currently runtime keeps hold to 4*used_memory. This includes, in
    particular, nursery, which can be quite large on multiprocessor
    machines: 16 CPUs x 64Mb each is 1GB. Multiplying it by 4 means whatever
    actual memory usage is, runtime will never release memory under 4GB, and
    this is quite excessive for processes which only need a lot of memory
    shortly (think building data structures from large files).
    This diff makes multiplier to apply only to GC-managed memory, leaving
    all "static" allocations alone.
    Test Plan: make test TEST="T14702"
    Reviewers: bgamari, erikd, simonmar
    Reviewed By: simonmar
    Subscribers: rwbarton, thomie, carter
    GHC Trac Issues: #14702
    Differential Revision: https://phabricator.haskell.org/D4338
RetainerProfile.c 72.4 KB