0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Namespaces | Typedefs | Functions
PageArena.h File Reference

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"
Include dependency graph for PageArena.h:
This graph shows which files directly or indirectly include this file:

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)
 

Detailed Description

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.