Public 型 | Static Public メソッド | Static Private メソッド | Static Private 変数 | フレンド

クラス v8::internal::MarkCompactCollector

#include <mark-compact.h>

v8::internal::AllStaticを継承しています。

すべてのメンバ一覧

Public 型

typedef Object *(* AllocationFunction )(HeapObject *object, int object_size)
typedef void(* EncodingFunction )(HeapObject *old_object, int object_size, Object *new_object, int *offset)
typedef void(* ProcessNonLiveFunction )(HeapObject *object)

Static Public メソッド

static void CollectGarbage (GCTracer *tracer)
static bool HasCompacted ()
static bool IsCompacting ()
static int previous_marked_count ()
static GCTracer * tracer ()

Static Private メソッド

static void Prepare ()
static void Finish ()
static void MarkLiveObjects ()
static void MarkUnmarkedObject (HeapObject *obj)
static void MarkObject (HeapObject *obj)
static void CreateBackPointers ()
static void MarkMapContents (Map *map)
static void MarkDescriptorArray (DescriptorArray *descriptors)
static void ProcessRoots (RootMarkingVisitor *visitor)
static void MarkObjectGroups ()
static void ProcessObjectGroups (MarkingVisitor *visitor)
static void ProcessMarkingStack (MarkingVisitor *visitor)
static void EmptyMarkingStack (MarkingVisitor *visitor)
static void RefillMarkingStack ()
static bool MustBeMarked (Object **p)
static void SweepLargeObjectSpace ()
static bool SafeIsMap (HeapObject *object)
static void ClearNonLiveTransitions ()
static void EncodeForwardingAddresses ()
static void EncodeForwardingAddressesInNewSpace ()
template<AllocationFunction Alloc, ProcessNonLiveFunction ProcessNonLive>
static void EncodeForwardingAddressesInPagedSpace (PagedSpace *space)
static int IterateLiveObjects (NewSpace *space, HeapObjectCallback size_f)
static int IterateLiveObjects (PagedSpace *space, HeapObjectCallback size_f)
static int IterateLiveObjectsInRange (Address start, Address end, HeapObjectCallback size_func)
static void DeallocateOldPointerBlock (Address start, int size_in_bytes)
static void DeallocateOldDataBlock (Address start, int size_in_bytes)
static void DeallocateCodeBlock (Address start, int size_in_bytes)
static void DeallocateMapBlock (Address start, int size_in_bytes)
static void SweepSpaces ()
static void UpdatePointers ()
static int UpdatePointersInNewObject (HeapObject *obj)
static int UpdatePointersInOldObject (HeapObject *obj)
static Address GetForwardingAddressInOldSpace (HeapObject *obj)
static void RelocateObjects ()
static int ConvertCodeICTargetToAddress (HeapObject *obj)
static int RelocateMapObject (HeapObject *obj)
static int RelocateOldPointerObject (HeapObject *obj)
static int RelocateOldDataObject (HeapObject *obj)
static int RelocateOldNonCodeObject (HeapObject *obj, OldSpace *space)
static int RelocateCodeObject (HeapObject *obj)
static int RelocateNewObject (HeapObject *obj)
static void RebuildRSets ()

Static Private 変数

static bool compacting_collection_ = false
static int previous_marked_count_ = 0
static GCTracer * tracer_ = NULL

フレンド

class RootMarkingVisitor
class MarkingVisitor
class UpdatingVisitor

説明

mark-compact.h52 行で定義されています。


型定義

mark-compact.h59 行で定義されています。

typedef void(* v8::internal::MarkCompactCollector::EncodingFunction)(HeapObject *old_object, int object_size, Object *new_object, int *offset)

mark-compact.h69 行で定義されています。

mark-compact.h75 行で定義されています。


関数

void v8::internal::MarkCompactCollector::ClearNonLiveTransitions (  )  [static, private]
void v8::internal::MarkCompactCollector::CollectGarbage ( GCTracer *  tracer  )  [static]
int v8::internal::MarkCompactCollector::ConvertCodeICTargetToAddress ( HeapObject obj  )  [static, private]
void v8::internal::MarkCompactCollector::CreateBackPointers (  )  [static, private]
void v8::internal::MarkCompactCollector::DeallocateCodeBlock ( Address  start,
int  size_in_bytes 
) [static, private]

mark-compact.cc1234 行で定義されています。

参照先 v8::internal::Heap::code_space(), と v8::internal::OldSpace::Free().

参照元 SweepSpaces().

void v8::internal::MarkCompactCollector::DeallocateMapBlock ( Address  start,
int  size_in_bytes 
) [static, private]
void v8::internal::MarkCompactCollector::DeallocateOldDataBlock ( Address  start,
int  size_in_bytes 
) [static, private]

mark-compact.cc1228 行で定義されています。

参照先 v8::internal::OldSpace::Free(), と v8::internal::Heap::old_data_space().

参照元 SweepSpaces().

void v8::internal::MarkCompactCollector::DeallocateOldPointerBlock ( Address  start,
int  size_in_bytes 
) [static, private]
void v8::internal::MarkCompactCollector::EmptyMarkingStack ( MarkingVisitor visitor  )  [static, private]
void v8::internal::MarkCompactCollector::EncodeForwardingAddresses (  )  [static, private]
void v8::internal::MarkCompactCollector::EncodeForwardingAddressesInNewSpace (  )  [static, private]
template<MarkCompactCollector::AllocationFunction Alloc, MarkCompactCollector::ProcessNonLiveFunction ProcessNonLive>
void v8::internal::MarkCompactCollector::EncodeForwardingAddressesInPagedSpace ( PagedSpace space  )  [static, private]
void v8::internal::MarkCompactCollector::Finish (  )  [static, private]

mark-compact.cc169 行で定義されています。

参照先 ASSERT, と v8::internal::StubCache::Clear().

参照元 CollectGarbage().

Address v8::internal::MarkCompactCollector::GetForwardingAddressInOldSpace ( HeapObject obj  )  [static, private]
static bool v8::internal::MarkCompactCollector::HasCompacted (  )  [inline, static]

mark-compact.h81 行で定義されています。

参照先 compacting_collection_.

参照元 v8::internal::Heap::PerformGarbageCollection().

static bool v8::internal::MarkCompactCollector::IsCompacting (  )  [inline, static]

mark-compact.h84 行で定義されています。

参照先 compacting_collection_.

参照元 CollectGarbage(), v8::internal::SweepSpace(), と SweepSpaces().

int v8::internal::MarkCompactCollector::IterateLiveObjects ( NewSpace space,
HeapObjectCallback  size_f 
) [static, private]
int v8::internal::MarkCompactCollector::IterateLiveObjects ( PagedSpace space,
HeapObjectCallback  size_f 
) [static, private]
int v8::internal::MarkCompactCollector::IterateLiveObjectsInRange ( Address  start,
Address  end,
HeapObjectCallback  size_func 
) [static, private]
void v8::internal::MarkCompactCollector::MarkDescriptorArray ( DescriptorArray descriptors  )  [static, private]
void v8::internal::MarkCompactCollector::MarkLiveObjects (  )  [static, private]
void v8::internal::MarkCompactCollector::MarkMapContents ( Map map  )  [static, private]
static void v8::internal::MarkCompactCollector::MarkObject ( HeapObject obj  )  [inline, static, private]
void v8::internal::MarkCompactCollector::MarkObjectGroups (  )  [static, private]
void v8::internal::MarkCompactCollector::MarkUnmarkedObject ( HeapObject obj  )  [static, private]
bool v8::internal::MarkCompactCollector::MustBeMarked ( Object **  p  )  [static, private]

mark-compact.cc565 行で定義されています。

参照先 v8::internal::HeapObject::cast(), と v8::internal::HeapObject::IsMarked().

参照元 MarkLiveObjects().

void v8::internal::MarkCompactCollector::Prepare (  )  [static, private]

mark-compact.cc108 行で定義されています。

参照先 ASSERT, compacting_collection_, と CreateBackPointers().

参照元 CollectGarbage().

static int v8::internal::MarkCompactCollector::previous_marked_count (  )  [inline, static]

mark-compact.h88 行で定義されています。

参照先 previous_marked_count_.

void v8::internal::MarkCompactCollector::ProcessMarkingStack ( MarkingVisitor visitor  )  [static, private]
void v8::internal::MarkCompactCollector::ProcessObjectGroups ( MarkingVisitor visitor  )  [static, private]
void v8::internal::MarkCompactCollector::ProcessRoots ( RootMarkingVisitor visitor  )  [static, private]
void v8::internal::MarkCompactCollector::RebuildRSets (  )  [static, private]

mark-compact.cc1919 行で定義されています。

参照先 ASSERT.

参照元 CollectGarbage().

void v8::internal::MarkCompactCollector::RefillMarkingStack (  )  [static, private]
int v8::internal::MarkCompactCollector::RelocateCodeObject ( HeapObject obj  )  [static, private]
int v8::internal::MarkCompactCollector::RelocateMapObject ( HeapObject obj  )  [static, private]
int v8::internal::MarkCompactCollector::RelocateNewObject ( HeapObject obj  )  [static, private]
void v8::internal::MarkCompactCollector::RelocateObjects (  )  [static, private]
int v8::internal::MarkCompactCollector::RelocateOldDataObject ( HeapObject obj  )  [static, private]

mark-compact.cc1798 行で定義されています。

参照先 v8::internal::Heap::old_data_space(), と RelocateOldNonCodeObject().

参照元 RelocateObjects().

int v8::internal::MarkCompactCollector::RelocateOldNonCodeObject ( HeapObject obj,
OldSpace space 
) [inline, static, private]
int v8::internal::MarkCompactCollector::RelocateOldPointerObject ( HeapObject obj  )  [static, private]

mark-compact.cc1793 行で定義されています。

参照先 v8::internal::Heap::old_pointer_space(), と RelocateOldNonCodeObject().

参照元 RelocateObjects().

bool v8::internal::MarkCompactCollector::SafeIsMap ( HeapObject object  )  [inline, static, private]

mark-compact.cc853 行で定義されています。

参照元 ClearNonLiveTransitions().

void v8::internal::MarkCompactCollector::SweepLargeObjectSpace (  )  [static, private]
void v8::internal::MarkCompactCollector::SweepSpaces (  )  [static, private]
static GCTracer* v8::internal::MarkCompactCollector::tracer (  )  [inline, static]
void v8::internal::MarkCompactCollector::UpdatePointers (  )  [static, private]
int v8::internal::MarkCompactCollector::UpdatePointersInNewObject ( HeapObject obj  )  [static, private]
int v8::internal::MarkCompactCollector::UpdatePointersInOldObject ( HeapObject obj  )  [static, private]

フレンドと関連する関数

friend class MarkingVisitor [friend]

mark-compact.h147 行で定義されています。

friend class RootMarkingVisitor [friend]

mark-compact.h146 行で定義されています。

friend class UpdatingVisitor [friend]

mark-compact.h281 行で定義されています。


変数

mark-compact.h116 行で定義されています。

参照元 CollectGarbage(), HasCompacted(), IsCompacting(), Prepare(), と SweepLargeObjectSpace().

mark-compact.h120 行で定義されています。

参照元 CollectGarbage(), と previous_marked_count().

GCTracer * v8::internal::MarkCompactCollector::tracer_ = NULL [static, private]

mark-compact.h124 行で定義されています。

参照元 CollectGarbage(), MarkDescriptorArray(), MarkUnmarkedObject(), ProcessRoots(), と tracer().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義