Class MixedPool¶
Defined in File MixedPool.hpp
Inheritance Relationships¶
Base Type¶
public umpire::strategy::AllocationStrategy
(Class AllocationStrategy)
Class Documentation¶
-
class
MixedPool
: public umpire::strategy::AllocationStrategy¶ A faster pool that pulls from a series of pools.
Pool implementation using a series of FixedPools for small sizes, and a DynamicPool for sizes larger than (1 << LastFixed) bytes.
Public Functions
-
MixedPool
(const std::string &name, int id, Allocator allocator, std::size_t smallest_fixed_obj_size = (1 << 8), std::size_t largest_fixed_obj_size = (1 << 17), std::size_t max_initial_fixed_pool_size = 1024 * 1024 * 2, std::size_t fixed_size_multiplier = 16, const std::size_t dynamic_initial_alloc_size = (512 * 1024 * 1024), const std::size_t dynamic_min_alloc_size = (1 * 1024 * 1024), DynamicPool::CoalesceHeuristic dynamic_coalesce_heuristic = heuristic_percent_releasable(100), const int dynamic_align_bytes = 16)¶ Creates a MixedPool of one or more fixed pools and a dynamic pool for large allocations.
- Parameters
name
: Name of the poolid
: Unique identifier for lookup later in ResourceManagerallocator
: Underlying allocatorsmallest_fixed_obj_size
: Smallest fixed pool object size in byteslargest_fixed_obj_size
: Largest fixed pool object size in bytesmax_initial_fixed_pool_size
: Largest initial size of any fixed poolfixed_size_multiplier
: Fixed pool object size increase factordynamic_initial_alloc_size
: Size the dynamic pool initially allocatesdynamic_min_alloc_bytes
: Minimum size of all future allocations in the dynamic poolcoalesce_heuristic
: Heuristic callback function (for the dynamic pool)dynamic_align_bytes
: Size with which to align allocations (for the dynamic pool)
-
void *
allocate
(std::size_t bytes)¶ Allocate bytes of memory.
- Return
Pointer to start of allocated bytes.
- Parameters
bytes
: Number of bytes to allocate.
-
void
deallocate
(void *ptr)¶ Free the memory at ptr.
- Parameters
ptr
: Pointer to free.
-
void
release
()¶ Release any and all unused memory held by this AllocationStrategy.
-
std::size_t
getCurrentSize
() const¶ Get current (total) size of the allocated memory.
This is the total size of all allocation currently ‘live’ that have been made by this AllocationStrategy object.
- Return
Current total size of allocations.
-
std::size_t
getActualSize
() const¶ Get the current amount of memory allocated by this allocator.
Note that this can be larger than getCurrentSize(), particularly if the AllocationStrategy implements some kind of pooling.
- Return
The total size of all the memory this object has allocated.
-
std::size_t
getHighWatermark
() const¶ Get the high watermark of the total allocated size.
This is equivalent to the highest observed value of getCurrentSize.
- Return
High watermark allocation size.
-
Platform
getPlatform
()¶ Get the platform associated with this AllocationStrategy.
The Platform distinguishes the appropriate place to execute operations on memory allocated by this AllocationStrategy.
- Return
The platform associated with this AllocationStrategy.
-
const std::string &
getName
() Get the name of this AllocationStrategy.
- Return
The name of this AllocationStrategy.
-
int
getId
() Get the id of this AllocationStrategy.
- Return
The id of this AllocationStrategy.
Protected Attributes
-
std::string
m_name
-
int
m_id
-