Class AllocationStrategy

Inheritance Relationships

Derived Types

Class Documentation

class AllocationStrategy

AllocationStrategy provides a unified interface to all classes that can be used to allocate and free data.

Subclassed by umpire::resource::MemoryResource, umpire::strategy::AllocationAdvisor, umpire::strategy::AllocationPrefetcher, umpire::strategy::AllocationTracker, umpire::strategy::DynamicPoolList, umpire::strategy::DynamicPoolMap, umpire::strategy::FixedPool, umpire::strategy::MixedPool, umpire::strategy::MonotonicAllocationStrategy, umpire::strategy::NamedAllocationStrategy, umpire::strategy::NumaPolicy, umpire::strategy::SizeLimiter, umpire::strategy::SlotPool, umpire::strategy::ThreadSafeAllocator, umpire::strategy::ZeroByteHandler

Public Functions

AllocationStrategy(const std::string &name, int id)

Construct a new AllocationStrategy object.

All AllocationStrategy objects must will have a unique name and id. This uniqueness is enforced by the ResourceManager.

Parameters

virtual ~AllocationStrategy()
virtual void *allocate(std::size_t bytes) = 0

Allocate bytes of memory.

Return

Pointer to start of allocated bytes.

Parameters
  • bytes: Number of bytes to allocate.

virtual void deallocate(void *ptr) = 0

Free the memory at ptr.

Parameters
  • ptr: Pointer to free.

void release()

Release any and all unused memory held by this AllocationStrategy.

virtual std::size_t getCurrentSize() const = 0

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.

virtual std::size_t getHighWatermark() const = 0

Get the high watermark of the total allocated size.

This is equivalent to the highest observed value of getCurrentSize.

Return

High watermark allocation size.

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.

virtual Platform getPlatform() = 0

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

Friends

std::ostream &operator<<(std::ostream &os, const AllocationStrategy &strategy)