memorypool: basic memory pool outside of haskell heap/GC

[ bsd3, library, system ] [ Propose Tags ]

See Readme


[Skip to Readme]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <4.11), containers (>=0.5.6.2 && <0.6), transformers (>=0.4.2.0 && <0.6), unsafe (>=0.0 && <0.1), vector (>=0.11.0.0 && <0.13), void (>=0.7.1 && <0.8) [details]
License BSD-3-Clause
Copyright Copyright (C) 2016 Lennart Spitzner
Author Lennart Spitzner
Maintainer Lennart Spitzner <hexagoxel@hexagoxel.de>
Revised Revision 1 made by lspitzner at 2017-08-01T22:26:49Z
Category System
Home page https://github.com/lspitzner/memorypool
Source repo head: git clone https://github.com/lspitzner/memorypool.git
Uploaded by lspitzner at 2016-08-26T14:31:30Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1017 total (5 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for memorypool-0.1.0.0

[back to package description]

memorypool

A very basic memory pool imlemented in haskell.

The core idea is that the pool allocates large chunks of memory that are some power-of-two factor (e.g. 256) of some base size (e.g. 10k). The user of the pool allocates chunks of a power-of-two factor of the base size (i.e. 10k, 20k, 40k, ..). This scheme avoids fragmentation due to weirdly-sized holes, but keep in mind that no compaction takes place, so this kind of fragmentation must be worked around manually if necessary.

The pool internally allocates memory on the C heap, i.e. outside of any haskell/GC heap.

Uses a buddy allocation strategy internally.