Dune Core Modules (2.4.1)
A memory pool of objects. More...
#include <dune/common/poolallocator.hh>
Public Types | |
| enum | { unionSize , size , alignment = Lcm<AlignmentOf<MemberType>::value,AlignmentOf<Reference>::value>::value , alignedSize , chunkSize , elements = ((chunkSize - alignment + 1)/ alignedSize) } |
| typedef T | MemberType |
| The type of object we allocate memory for. | |
Public Member Functions | |
| Pool () | |
| Constructor. | |
| ~Pool () | |
| Destructor. | |
| void * | allocate () |
| Get a new or recycled object. More... | |
| void | free (void *o) |
| Free an object. More... | |
| void | print (std::ostream &os) |
| Print elements in pool for debugging. | |
Detailed Description
class Dune::Pool< T, s >
A memory pool of objects.
The memory for the objects is organized in chunks. Each chunks is capable of holding a specified number of objects. The allocated objects will be properly aligned for fast access. Deallocated objects are cached for reuse to prevent memory fragmentation.
- Warning
- If the size of the objects allocated is less than the size of a pointer memory is wasted.
- Due to aligned issues at the number of bytes of the alignment prerequisite (< 4 bytes) are wasted. This effect becomes negligible for big sizes of chunkSize.
- Template Parameters
-
T The type that is allocated by us. s The size of a memory chunk in bytes.
Member Enumeration Documentation
◆ anonymous enum
| anonymous enum |
| Enumerator | |
|---|---|
| unionSize | The size of a union of Reference and MemberType. |
| size | Size requirement. At least one object has to stored. |
| alignment | The alignment that suits both the MemberType and the Reference (i.e. their least common multiple). |
| alignedSize | The aligned size of the type. This size is bigger than sizeof of the type and a multiple of the alignment requirement. |
| chunkSize | The size of each chunk memory chunk. Will be adapted to be a multiple of the alignment plus an offset to handle the case that the pointer to the memory does not satisfy the alignment requirements. |
| elements | The number of element each chunk can hold. |
The documentation for this class was generated from the following file:
- dune/common/poolallocator.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Nov 2, 23:43, 2025)