PageArena memory allocator. More...
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cstddef>
#include <cassert>
#include <algorithm>
#include <set>
#include <string>
#include <boost/noncopyable.hpp>
#include <boost/static_assert.hpp>
#include "Common/Logger.h"
Go to the source code of this file.
Classes | |
struct | Hypertable::DefaultPageAllocator |
A memory allocator using std::malloc() and std::free(). More... | |
class | Hypertable::PageArena< CharT, PageAllocatorT > |
The PageArena allocator is simple and fast, avoiding individual mallocs/frees. More... | |
struct | Hypertable::PageArena< CharT, PageAllocatorT >::Page |
A structure to manage a single memory page which is used to allocate smaller memory chunks. More... | |
struct | Hypertable::PageArena< CharT, PageAllocatorT >::LtPageRemain |
predicate which sorts by size More... | |
struct | Hypertable::PageArena< CharT, PageAllocatorT >::TinyBuffer |
A small buffer (128 bytes) to satisfy very small memory allocations without allocating a page from the heap. More... | |
Namespaces | |
Hypertable | |
Hypertable definitions | |
Typedefs | |
typedef PageArena | Hypertable::CharArena |
typedef PageArena< unsigned char > | Hypertable::ByteArena |
Functions | |
template<typename CharT , class PageAlloc > | |
std::ostream & | Hypertable::operator<< (std::ostream &out, const PageArena< CharT, PageAlloc > &m) |
PageArena memory allocator.
This class efficiently allocates memory chunks from large memory pages. This reduces the number of heap allocations, thus causing less heap fragmentation and higher performance. The PageArena memory allocator can not be used for STL classes - use PageArenaAllocator instead.
Definition in file PageArena.h.