The gc package

[ Tags: bsd3, data, library ] [ Propose Tags ]

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.


[Skip to Readme]

Properties

Versions 0, 0.0.1, 0.0.2
Change log CHANGELOG.markdown
Dependencies base (>=4.7 && <5) [details]
License BSD3
Copyright Copyright (C) 2015 Edward A. Kmett
Author Edward A. Kmett
Maintainer Edward A. Kmett <ekmett@gmail.com>
Category Data
Home page http://github.com/ekmett/gc/
Bug tracker http://github.com/ekmett/gc/issues
Source repository head: git clone git://github.com/ekmett/gc.git
Uploaded Sat Jul 29 00:36:00 UTC 2017 by ryanglscott
Distributions NixOS:0.0.2
Downloads 252 total (13 in the last 30 days)
Rating 2.0 (1 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-07-29 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
test-doctestsEnabledManual
test-hlintEnabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for gc-0.0.2

[back to package description]

gc

Build Status

Experimenting with building Poor Richard's Memory Manager in Haskell user space.

Usage:

import System.Mem.Manager

main = do
  _ <- selfishManager
  ...

Now an oracle will look for signs of memory pressure from the host operating system and attempt more aggressive garbage collection in response.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.

-Edward Kmett