Public メソッド | |
TCMalloc_PageHeap () | |
Span * | New (Length n) |
void | Delete (Span *span) |
void | RegisterSizeClass (Span *span, size_t sc) |
Span * | Split (Span *span, Length n) |
Span * | GetDescriptor (PageID p) const |
void | Dump (TCMalloc_Printer *out) |
uint64_t | SystemBytes () const |
uint64_t | FreeBytes () const |
bool | Check () |
bool | CheckList (Span *list, Length min_pages, Length max_pages) |
TCMalloc_PageHeap () | |
Span * | New (Length n) |
void | Delete (Span *span) |
void | RegisterSizeClass (Span *span, size_t sc) |
Span * | Split (Span *span, Length n) |
Span * | GetDescriptor (PageID p) const |
void | Dump (TCMalloc_Printer *out) |
uint64_t | SystemBytes () const |
uint64_t | FreeBytes () const |
bool | Check () |
bool | CheckList (Span *list, Length min_pages, Length max_pages) |
void | ReleaseFreePages () |
size_t | GetSizeClassIfCached (PageID p) const |
void | CacheSizeClass (PageID p, size_t cl) const |
Private 型 | |
typedef MapSelector< 8 *sizeof(uintptr_t)> ::Type | PageMap |
typedef MapSelector< 8 *sizeof(uintptr_t)> ::Type | PageMap |
typedef MapSelector< 8 *sizeof(uintptr_t)> ::CacheType | PageMapCache |
Private メソッド | |
bool | GrowHeap (Length n) |
void | Carve (Span *span, Length n) |
void | RecordSpan (Span *span) |
bool | GrowHeap (Length n) |
void | Carve (Span *span, Length n, bool released) |
void | RecordSpan (Span *span) |
Span * | AllocLarge (Length n) |
void | IncrementalScavenge (Length n) |
Private 変数 | |
PageMap | pagemap_ |
Span | large_ |
Span | free_ [kMaxPages] |
uintptr_t | free_pages_ |
uint64_t | system_bytes_ |
PageMapCache | pagemap_cache_ |
SpanList | large_ |
SpanList | free_ [kMaxPages] |
int64_t | scavenge_counter_ |
int | scavenge_index_ |
構成 | |
struct | SpanList |
tcmalloc-0.8/tcmalloc.cc の 682 行で定義されています。
typedef MapSelector<8*sizeof(uintptr_t)>::Type TCMalloc_PageHeap::PageMap [private] |
tcmalloc-0.8/tcmalloc.cc の 733 行で定義されています。
typedef MapSelector<8*sizeof(uintptr_t)>::Type TCMalloc_PageHeap::PageMap [private] |
tcmalloc-0.93/tcmalloc.cc の 865 行で定義されています。
typedef MapSelector<8*sizeof(uintptr_t)>::CacheType TCMalloc_PageHeap::PageMapCache [private] |
tcmalloc-0.93/tcmalloc.cc の 866 行で定義されています。
TCMalloc_PageHeap::TCMalloc_PageHeap | ( | ) |
TCMalloc_PageHeap::TCMalloc_PageHeap | ( | ) |
tcmalloc-0.8/tcmalloc.cc の 774 行で定義されています。
参照先 ASSERT, Carve(), Check(), DLL_IsEmpty(), free_, free_pages_, GrowHeap(), kMaxPages, large_, Span::length, と Span::next.
void TCMalloc_PageHeap::Delete | ( | Span * | span | ) |
tcmalloc-0.8/tcmalloc.cc の 859 行で定義されています。
参照先 ASSERT, Check(), DeleteSpan(), DLL_InsertOrdered(), DLL_Prepend(), DLL_Remove(), Event, Span::free, free_, free_pages_, GetDescriptor(), kMaxPages, large_, Span::length, pagemap_, Span::sample, Span::sizeclass, と Span::start.
参照元 GrowHeap().
void TCMalloc_PageHeap::RegisterSizeClass | ( | Span * | span, | |
size_t | sc | |||
) |
tcmalloc-0.8/tcmalloc.cc の 910 行で定義されています。
参照先 ASSERT, Event, Span::free, GetDescriptor(), Span::length, pagemap_, Span::sizeclass, と Span::start.
tcmalloc-0.8/tcmalloc.cc の 819 行で定義されています。
参照先 ASSERT, Event, Span::free, Span::length, length, NewSpan(), pagemap_, RecordSpan(), Span::sizeclass, と Span::start.
tcmalloc-0.8/tcmalloc.cc の 713 行で定義されています。
参照先 pagemap_.
参照元 CheckList(), Delete(), と RegisterSizeClass().
void TCMalloc_PageHeap::Dump | ( | TCMalloc_Printer * | out | ) |
tcmalloc-0.8/tcmalloc.cc の 922 行で定義されています。
参照先 DLL_IsEmpty(), DLL_Length(), free_, free_pages_, kMaxPages, kPageShift, kPageSize, large_, Span::next, TCMalloc_Printer::printf(), と PRIuS.
uint64_t TCMalloc_PageHeap::SystemBytes | ( | ) | const [inline] |
uint64_t TCMalloc_PageHeap::FreeBytes | ( | ) | const [inline] |
bool TCMalloc_PageHeap::Check | ( | ) |
tcmalloc-0.8/tcmalloc.cc の 1014 行で定義されています。
参照先 ASSERT, CheckList(), free_, kMaxPages, と large_.
参照元 AllocLarge(), Delete(), GrowHeap(), New(), と ReleaseFreePages().
tcmalloc-0.8/tcmalloc.cc の 1023 行で定義されています。
参照先 CHECK_CONDITION, GetDescriptor(), と Span::next.
参照元 Check().
bool TCMalloc_PageHeap::GrowHeap | ( | Length | n | ) | [private] |
tcmalloc-0.8/tcmalloc.cc の 966 行で定義されています。
参照先 ASSERT, Check(), Delete(), kMaxPages, kMinSystemAlloc, kPageMapBigAllocationThreshold, kPageShift, kPageSize, NewSpan(), pagemap_, RecordGrowth(), RecordSpan(), system_bytes_, と TCMalloc_SystemAlloc().
参照元 New().
tcmalloc-0.8/tcmalloc.cc の 836 行で定義されています。
参照先 ASSERT, DLL_InsertOrdered(), DLL_Prepend(), DLL_Remove(), Event, Span::free, free_, kMaxPages, large_, Span::length, NewSpan(), pagemap_, RecordSpan(), と Span::start.
参照元 AllocLarge(), と New().
void TCMalloc_PageHeap::RecordSpan | ( | Span * | span | ) | [inline, private] |
tcmalloc-0.8/tcmalloc.cc の 757 行で定義されています。
参照先 Span::length, pagemap_, と Span::start.
参照元 Carve(), GrowHeap(), と Split().
void TCMalloc_PageHeap::Delete | ( | Span * | span | ) |
void TCMalloc_PageHeap::RegisterSizeClass | ( | Span * | span, | |
size_t | sc | |||
) |
void TCMalloc_PageHeap::Dump | ( | TCMalloc_Printer * | out | ) |
uint64_t TCMalloc_PageHeap::SystemBytes | ( | ) | const [inline] |
uint64_t TCMalloc_PageHeap::FreeBytes | ( | ) | const [inline] |
bool TCMalloc_PageHeap::Check | ( | ) |
void TCMalloc_PageHeap::ReleaseFreePages | ( | ) |
tcmalloc-0.93/tcmalloc.cc の 1345 行で定義されています。
参照先 ASSERT, Check(), free_, large_, と ReleaseFreeList().
size_t TCMalloc_PageHeap::GetSizeClassIfCached | ( | PageID | p | ) | const [inline] |
void TCMalloc_PageHeap::CacheSizeClass | ( | PageID | p, | |
size_t | cl | |||
) | const [inline] |
bool TCMalloc_PageHeap::GrowHeap | ( | Length | n | ) | [private] |
void TCMalloc_PageHeap::RecordSpan | ( | Span * | span | ) | [inline, private] |
tcmalloc-0.93/tcmalloc.cc の 979 行で定義されています。
参照先 ASSERT, Carve(), Check(), free_pages_, large_, Span::length, Span::next, と Span::start.
void TCMalloc_PageHeap::IncrementalScavenge | ( | Length | n | ) | [private] |
PageMap TCMalloc_PageHeap::pagemap_ [private] |
tcmalloc-0.8/tcmalloc.cc の 734 行で定義されています。
参照元 Carve(), Delete(), GetDescriptor(), GrowHeap(), RecordSpan(), RegisterSizeClass(), と Split().
Span TCMalloc_PageHeap::large_ [private] |
tcmalloc-0.8/tcmalloc.cc の 737 行で定義されています。
参照元 AllocLarge(), Carve(), Check(), Delete(), Dump(), IncrementalScavenge(), New(), ReleaseFreePages(), と TCMalloc_PageHeap().
Span TCMalloc_PageHeap::free_[kMaxPages] [private] |
tcmalloc-0.8/tcmalloc.cc の 740 行で定義されています。
参照元 Carve(), Check(), Delete(), Dump(), IncrementalScavenge(), New(), ReleaseFreePages(), と TCMalloc_PageHeap().
uintptr_t TCMalloc_PageHeap::free_pages_ [private] |
tcmalloc-0.8/tcmalloc.cc の 743 行で定義されています。
参照元 AllocLarge(), Delete(), Dump(), FreeBytes(), と New().
uint64_t TCMalloc_PageHeap::system_bytes_ [private] |
PageMapCache TCMalloc_PageHeap::pagemap_cache_ [mutable, private] |
SpanList TCMalloc_PageHeap::large_ [private] |
tcmalloc-0.93/tcmalloc.cc の 879 行で定義されています。
SpanList TCMalloc_PageHeap::free_[kMaxPages] [private] |
tcmalloc-0.93/tcmalloc.cc の 882 行で定義されています。
int64_t TCMalloc_PageHeap::scavenge_counter_ [private] |
int TCMalloc_PageHeap::scavenge_index_ [private] |