Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
Source project has a limited visibility.
  • blaze's avatar
    0171e09e
    Make RTS keep less memory (fixes #14702) · 0171e09e
    blaze authored and Ben Gamari's avatar Ben Gamari committed
    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
    0171e09e
    History
    Make RTS keep less memory (fixes #14702)
    blaze authored and Ben Gamari's avatar Ben Gamari committed
    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
Code owners
Assign users and groups as approvers for specific file changes. Learn more.