Space-memory management
[Memory management]
Classes | |
class | Gecode::FreeList |
Base-class for freelist-managed objects. More... | |
class | Gecode::RangeList |
Lists of ranges (intervals). More... | |
Namespaces | |
namespace | Gecode::MemoryConfig |
Parameters defining memory management policy for spaces. | |
Functions | |
template<class T > | |
T * | Gecode::Space::alloc (long unsigned int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | Gecode::Space::alloc (long int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | Gecode::Space::alloc (unsigned int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | Gecode::Space::alloc (int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
void | Gecode::Space::free (T *b, long unsigned int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | Gecode::Space::free (T *b, long int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | Gecode::Space::free (T *b, unsigned int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | Gecode::Space::free (T *b, int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
T * | Gecode::Space::realloc (T *b, long unsigned int n, long unsigned int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | Gecode::Space::realloc (T *b, long int n, long int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | Gecode::Space::realloc (T *b, unsigned int n, unsigned int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | Gecode::Space::realloc (T *b, int n, int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T ** | Gecode::Space::realloc (T **b, long unsigned int n, long unsigned int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | Gecode::Space::realloc (T **b, long int n, long int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | Gecode::Space::realloc (T **b, unsigned int n, unsigned int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | Gecode::Space::realloc (T **b, int n, int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
void * | Gecode::Space::ralloc (size_t s) |
Allocate memory on space heap. | |
void | Gecode::Space::rfree (void *p, size_t s) |
Free memory previously allocated with alloc (might be reused later). | |
void * | Gecode::Space::rrealloc (void *b, size_t n, size_t m) |
Reallocate memory block starting at b from size n to size s. | |
template<size_t > | |
void * | Gecode::Space::fl_alloc (void) |
Allocate from freelist-managed memory. | |
template<size_t > | |
void | Gecode::Space::fl_dispose (FreeList *f, FreeList *l) |
Return freelist-managed memory to freelist. | |
size_t | Gecode::Space::allocated (void) const |
Return how much heap memory is allocated. | |
void | Gecode::Space::flush (void) |
Flush cached memory blocks and AFC information. |
Function Documentation
T * Gecode::Space::alloc | ( | long unsigned int | n | ) | [inline, inherited] |
T * Gecode::Space::alloc | ( | long int | n | ) | [inline, inherited] |
T * Gecode::Space::alloc | ( | unsigned int | n | ) | [inline, inherited] |
T * Gecode::Space::alloc | ( | int | n | ) | [inline, inherited] |
void Gecode::Space::free | ( | T * | b, | |
long unsigned int | n | |||
) | [inline, inherited] |
void Gecode::Space::free | ( | T * | b, | |
long int | n | |||
) | [inline, inherited] |
void Gecode::Space::free | ( | T * | b, | |
unsigned int | n | |||
) | [inline, inherited] |
void Gecode::Space::free | ( | T * | b, | |
int | n | |||
) | [inline, inherited] |
T * Gecode::Space::realloc | ( | T * | b, | |
long unsigned int | n, | |||
long unsigned int | m | |||
) | [inline, inherited] |
Reallocate block of n objects starting at b to m objects of type T from the space heap.
Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.
Returns the address of the new block.
T * Gecode::Space::realloc | ( | T * | b, | |
long int | n, | |||
long int | m | |||
) | [inline, inherited] |
Reallocate block of n objects starting at b to m objects of type T from the space heap.
Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.
Returns the address of the new block.
T * Gecode::Space::realloc | ( | T * | b, | |
unsigned int | n, | |||
unsigned int | m | |||
) | [inline, inherited] |
Reallocate block of n objects starting at b to m objects of type T from the space heap.
Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.
Returns the address of the new block.
T * Gecode::Space::realloc | ( | T * | b, | |
int | n, | |||
int | m | |||
) | [inline, inherited] |
Reallocate block of n objects starting at b to m objects of type T from the space heap.
Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.
Returns the address of the new block.
T ** Gecode::Space::realloc | ( | T ** | b, | |
long unsigned int | n, | |||
long unsigned int | m | |||
) | [inline, inherited] |
T ** Gecode::Space::realloc | ( | T ** | b, | |
long int | n, | |||
long int | m | |||
) | [inline, inherited] |
T ** Gecode::Space::realloc | ( | T ** | b, | |
unsigned int | n, | |||
unsigned int | m | |||
) | [inline, inherited] |
T ** Gecode::Space::realloc | ( | T ** | b, | |
int | n, | |||
int | m | |||
) | [inline, inherited] |
void * Gecode::Space::ralloc | ( | size_t | s | ) | [inline, inherited] |
void Gecode::Space::rfree | ( | void * | p, | |
size_t | s | |||
) | [inline, inherited] |
void * Gecode::Space::rrealloc | ( | void * | b, | |
size_t | n, | |||
size_t | m | |||
) | [inline, inherited] |
void * Gecode::Space::fl_alloc | ( | void | ) | [inline, inherited] |
size_t Gecode::Space::allocated | ( | void | ) | const [inline, inherited] |
void Gecode::Space::flush | ( | void | ) | [inherited] |
Flush cached memory blocks and AFC information.
All spaces that are obtained as non-shared clones from some same space try to cache memory blocks from failed spaces. To minimize memory consumption, these blocks can be flushed.
Also, the numbers for AFC are reset to zero.