-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Poor Richard's Memory Manager -- -- This package implements a form of Poor Richard's Memory Manager -- by Hertz, Kane, Keudel, Bai, Ding, Gu and Bard in user-space in GHC. -- -- Usage: -- --
--   import System.Mem.Manager
--   main = do
--     _ <- selfishManager
--     ...
--   
-- -- Now, the background thread that was spawned by selfishManager -- will watch for signs that the host operating system is starting to -- cause the current process to page out to disk and respond with more -- aggressive garbage collection. -- -- This empowers your code to try to avoid the inevitable death spiral -- that follows when GC has to happen with paged out data. @package gc @version 0.1 -- | This module supplies a variant of the selfish form of "Poor -- Richard's Memory Manager" by Hertz, Kane, Keudel, Bai, Ding, Gu -- and Bard, adapted to run in Haskell in user-space. -- -- Due to the fact that Haskell returns memory to the operating system -- and doesn't really tell me about it, this follows their -- 'GenMS+Selfish' (without RSS) scheme. -- -- Usage: -- --
--   main = do
--     _ <- selfishManager
--     ...
--   
-- -- Now, the background thread that was spawned by selfishManager -- will watch for signs that the host operating system is starting to -- cause the current process to page out to disk and respond with more -- aggressive garbage collection. -- -- This empowers your code to try to avoid the inevitable death spiral -- that follows when GC has to happen with paged out data. module System.Mem.Manager -- | Run a background thread that checks for signs of memory pressure from -- the Host OS and kickstarts a garbage collection as needed. Returns the -- thread for the selfish gc manager and an IO action that can be run to -- count the cumulative number of managed collections selfishManager :: IO (ThreadId, IO Int) -- | Return the total number of "hard page-faults" since the program -- started. These are page-faults which required us to go out to disk. hardPageFaults :: IO CSize