Public メソッド | |
void | Init (size_t cl) |
void | InsertRange (void *start, void *end, int N) |
void | RemoveRange (void **start, void **end, int *N) |
int | length () |
int | tc_length () |
void | Init (size_t cl) |
void | InsertRange (void *start, void *end, int N) |
void | RemoveRange (void **start, void **end, int *N) |
int | length () |
int | tc_length () |
Private メソッド | |
void * | FetchFromSpans () |
void * | FetchFromSpansSafe () |
void | ReleaseListToSpans (void *start) |
void | ReleaseToSpans (void *object) |
void | Populate () |
bool | MakeCacheSpace () |
bool | ShrinkCache (int locked_size_class, bool force) |
void * | FetchFromSpans () |
void * | FetchFromSpansSafe () |
void | ReleaseListToSpans (void *start) |
void | ReleaseToSpans (void *object) |
void | Populate () |
bool | MakeCacheSpace () |
bool | ShrinkCache (int locked_size_class, bool force) |
Static Private メソッド | |
static bool | EvictRandomSizeClass (int locked_size_class, bool force) |
static bool | EvictRandomSizeClass (int locked_size_class, bool force) |
Private 変数 | |
SpinLock | lock_ |
size_t | size_class_ |
Span | empty_ |
Span | nonempty_ |
size_t | counter_ |
TCEntry | tc_slots_ [kNumTransferEntries] |
int32_t | used_slots_ |
int32_t | cache_size_ |
tcmalloc-0.8/tcmalloc.cc の 1149 行で定義されています。
void TCMalloc_Central_FreeList::Init | ( | size_t | cl | ) |
tcmalloc-0.8/tcmalloc.cc の 1298 行で定義されています。
参照先 ASSERT, cache_size_, counter_, DLL_Init(), empty_, kNumTransferEntries, lock_, nonempty_, size_class_, と used_slots_.
void TCMalloc_Central_FreeList::InsertRange | ( | void * | start, | |
void * | end, | |||
int | N | |||
) |
void TCMalloc_Central_FreeList::RemoveRange | ( | void ** | start, | |
void ** | end, | |||
int * | N | |||
) |
int TCMalloc_Central_FreeList::length | ( | ) | [inline] |
int TCMalloc_Central_FreeList::tc_length | ( | ) | [inline] |
void * TCMalloc_Central_FreeList::FetchFromSpans | ( | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1495 行で定義されています。
参照先 ASSERT, counter_, DLL_IsEmpty(), DLL_Prepend(), DLL_Remove(), empty_, Event, Span::next, nonempty_, Span::objects, と Span::refcount.
参照元 FetchFromSpansSafe(), と RemoveRange().
void * TCMalloc_Central_FreeList::FetchFromSpansSafe | ( | ) | [private] |
void TCMalloc_Central_FreeList::ReleaseListToSpans | ( | void * | start | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1310 行で定義されています。
参照先 ReleaseToSpans(), と SLL_Next().
参照元 InsertRange(), と ShrinkCache().
void TCMalloc_Central_FreeList::ReleaseToSpans | ( | void * | object | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1318 行で定義されています。
参照先 ASSERT, ByteSizeForClass(), counter_, DLL_Prepend(), DLL_Remove(), Event, kPageShift, Span::length, SpinLock::Lock(), lock_, nonempty_, Span::objects, pageheap, Span::refcount, Span::sizeclass, と SpinLock::Unlock().
参照元 ReleaseListToSpans().
void TCMalloc_Central_FreeList::Populate | ( | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1514 行で定義されています。
参照先 ASSERT, ByteSizeForClass(), class_to_pages, counter_, DLL_Prepend(), kPageShift, limit, SpinLock::Lock(), lock_, MESSAGE, nonempty_, Span::objects, pageheap, Span::refcount, size_class_, Span::start, と SpinLock::Unlock().
参照元 FetchFromSpansSafe().
bool TCMalloc_Central_FreeList::MakeCacheSpace | ( | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1379 行で定義されています。
参照先 cache_size_, EvictRandomSizeClass(), kNumTransferEntries, size_class_, と used_slots_.
参照元 InsertRange().
bool TCMalloc_Central_FreeList::EvictRandomSizeClass | ( | int | locked_size_class, | |
bool | force | |||
) | [static, private] |
bool TCMalloc_Central_FreeList::ShrinkCache | ( | int | locked_size_class, | |
bool | force | |||
) | [private] |
tcmalloc-0.8/tcmalloc.cc の 1406 行で定義されています。
参照先 ASSERT, cache_size_, lock_, ReleaseListToSpans(), tc_slots_, と used_slots_.
void TCMalloc_Central_FreeList::Init | ( | size_t | cl | ) |
void TCMalloc_Central_FreeList::InsertRange | ( | void * | start, | |
void * | end, | |||
int | N | |||
) |
void TCMalloc_Central_FreeList::RemoveRange | ( | void ** | start, | |
void ** | end, | |||
int * | N | |||
) |
int TCMalloc_Central_FreeList::length | ( | ) | [inline] |
tcmalloc-0.93/tcmalloc.cc の 1489 行で定義されています。
int TCMalloc_Central_FreeList::tc_length | ( | ) | [inline] |
tcmalloc-0.93/tcmalloc.cc の 1495 行で定義されています。
void* TCMalloc_Central_FreeList::FetchFromSpans | ( | ) | [private] |
void* TCMalloc_Central_FreeList::FetchFromSpansSafe | ( | ) | [private] |
void TCMalloc_Central_FreeList::ReleaseListToSpans | ( | void * | start | ) | [private] |
void TCMalloc_Central_FreeList::ReleaseToSpans | ( | void * | object | ) | [private] |
void TCMalloc_Central_FreeList::Populate | ( | ) | [private] |
bool TCMalloc_Central_FreeList::MakeCacheSpace | ( | ) | [private] |
static bool TCMalloc_Central_FreeList::EvictRandomSizeClass | ( | int | locked_size_class, | |
bool | force | |||
) | [static, private] |
bool TCMalloc_Central_FreeList::ShrinkCache | ( | int | locked_size_class, | |
bool | force | |||
) | [private] |
SpinLock TCMalloc_Central_FreeList::lock_ [private] |
tcmalloc-0.8/tcmalloc.cc の 1225 行で定義されています。
参照元 Init(), InsertRange(), Populate(), ReleaseToSpans(), RemoveRange(), と ShrinkCache().
size_t TCMalloc_Central_FreeList::size_class_ [private] |
tcmalloc-0.8/tcmalloc.cc の 1228 行で定義されています。
参照元 Init(), InsertRange(), MakeCacheSpace(), Populate(), と RemoveRange().
Span TCMalloc_Central_FreeList::empty_ [private] |
Span TCMalloc_Central_FreeList::nonempty_ [private] |
tcmalloc-0.8/tcmalloc.cc の 1230 行で定義されています。
参照元 FetchFromSpans(), Init(), Populate(), と ReleaseToSpans().
size_t TCMalloc_Central_FreeList::counter_ [private] |
tcmalloc-0.8/tcmalloc.cc の 1231 行で定義されています。
参照元 FetchFromSpans(), Init(), Populate(), と ReleaseToSpans().
TCEntry TCMalloc_Central_FreeList::tc_slots_ [private] |
int32_t TCMalloc_Central_FreeList::used_slots_ [private] |
tcmalloc-0.8/tcmalloc.cc の 1240 行で定義されています。
参照元 Init(), InsertRange(), MakeCacheSpace(), RemoveRange(), と ShrinkCache().
int32_t TCMalloc_Central_FreeList::cache_size_ [private] |