Grok 20.3.2
grk::MemoryManager Class Reference

#include <MemManager.h>

Classes

struct  Stats

Public Member Functions

void * malloc (size_t size)
void * calloc (size_t num, size_t size)
void * aligned_malloc (size_t bytes)
void * aligned_malloc (size_t alignment, size_t bytes)
void * realloc (void *ptr, size_t new_size)
void free (void *ptr)
void aligned_free (void *ptr)
Stats get_stats () const
void print_stats () const

Static Public Member Functions

static MemoryManagerget ()
static void releaseFreedPages ()

Private Member Functions

 MemoryManager ()
 ~MemoryManager ()
 MemoryManager (const MemoryManager &)=delete
MemoryManageroperator= (const MemoryManager &)=delete

Private Attributes

bool track_stats = false
bool track_details = false
std::mutex stats_mutex
std::atomic< size_t > allocations {0}
std::atomic< size_t > deallocations {0}
std::atomic< size_t > reallocations {0}
std::atomic< size_t > total_allocated {0}
size_t current_allocated = 0
size_t peak_allocated = 0
std::unordered_map< void *, size_t > allocation_map

Constructor & Destructor Documentation

◆ MemoryManager() [1/2]

grk::MemoryManager::MemoryManager ( )
inlineprivate

References track_details, and track_stats.

Referenced by get(), MemoryManager(), and operator=().

◆ ~MemoryManager()

grk::MemoryManager::~MemoryManager ( )
inlineprivate

References print_stats(), and track_stats.

◆ MemoryManager() [2/2]

grk::MemoryManager::MemoryManager ( const MemoryManager & )
privatedelete

References MemoryManager().

Member Function Documentation

◆ aligned_free()

void grk::MemoryManager::aligned_free ( void * ptr)
inline

◆ aligned_malloc() [1/2]

void * grk::MemoryManager::aligned_malloc ( size_t alignment,
size_t bytes )
inline

◆ aligned_malloc() [2/2]

void * grk::MemoryManager::aligned_malloc ( size_t bytes)
inline

◆ calloc()

void * grk::MemoryManager::calloc ( size_t num,
size_t size )
inline

◆ free()

void grk::MemoryManager::free ( void * ptr)
inline

◆ get()

◆ get_stats()

Stats grk::MemoryManager::get_stats ( ) const
inline

◆ malloc()

void * grk::MemoryManager::malloc ( size_t size)
inline

◆ operator=()

MemoryManager & grk::MemoryManager::operator= ( const MemoryManager & )
privatedelete

References MemoryManager().

◆ print_stats()

void grk::MemoryManager::print_stats ( ) const
inline

◆ realloc()

void * grk::MemoryManager::realloc ( void * ptr,
size_t new_size )
inline

◆ releaseFreedPages()

void grk::MemoryManager::releaseFreedPages ( )
inlinestatic

Member Data Documentation

◆ allocation_map

std::unordered_map<void*, size_t> grk::MemoryManager::allocation_map
private

◆ allocations

std::atomic<size_t> grk::MemoryManager::allocations {0}
private

◆ current_allocated

size_t grk::MemoryManager::current_allocated = 0
private

◆ deallocations

std::atomic<size_t> grk::MemoryManager::deallocations {0}
private

Referenced by aligned_free(), free(), and get_stats().

◆ peak_allocated

size_t grk::MemoryManager::peak_allocated = 0
private

◆ reallocations

std::atomic<size_t> grk::MemoryManager::reallocations {0}
private

Referenced by get_stats(), and realloc().

◆ stats_mutex

std::mutex grk::MemoryManager::stats_mutex
mutableprivate

◆ total_allocated

std::atomic<size_t> grk::MemoryManager::total_allocated {0}
private

◆ track_details

bool grk::MemoryManager::track_details = false
private

◆ track_stats

bool grk::MemoryManager::track_stats = false
private

The documentation for this class was generated from the following file: