v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::MinorMarkSweepCollector Class Referencefinal

#include <minor-mark-sweep.h>

Collaboration diagram for v8::internal::MinorMarkSweepCollector:

Public Member Functions

 MinorMarkSweepCollector (Heap *heap)
 
 ~MinorMarkSweepCollector ()
 
void TearDown ()
 
void CollectGarbage ()
 
void StartMarking (bool force_use_background_threads)
 
void RequestGC ()
 
EphemeronRememberedSet::TableListephemeron_table_list () const
 
MarkingWorklistsmarking_worklists ()
 
MarkingWorklists::Locallocal_marking_worklists ()
 
YoungGenerationRememberedSetsMarkingWorklistremembered_sets_marking_handler ()
 
YoungGenerationMainMarkingVisitormain_marking_visitor ()
 
bool is_in_atomic_pause () const
 
bool gc_finalization_requsted () const
 
bool UseBackgroundThreadsInCycle () const
 
void DrainMarkingWorklistForTesting ()
 

Static Public Attributes

static constexpr size_t kMaxParallelTasks = 8
 

Private Types

using ResizeNewSpaceMode = Heap::ResizeNewSpaceMode
 

Private Member Functions

Sweepersweeper ()
 
void MarkLiveObjects ()
 
void MarkRoots (YoungGenerationRootMarkingVisitor &root_visitor, bool was_marked_incrementally)
 
V8_EXPORT_PRIVATE void DrainMarkingWorklist ()
 
void MarkRootsFromTracedHandles (YoungGenerationRootMarkingVisitor &root_visitor)
 
void MarkRootsFromConservativeStack (YoungGenerationRootMarkingVisitor &root_visitor)
 
void EvacuateExternalPointerReferences (MutablePageMetadata *p)
 
void TraceFragmentation ()
 
void ClearNonLiveReferences ()
 
void FinishConcurrentMarking ()
 
void PerformWrapperTracing ()
 
void Sweep ()
 
bool StartSweepNewSpace ()
 
void StartSweepNewSpaceWithStickyBits ()
 
bool SweepNewLargeSpace ()
 
void Finish ()
 

Private Attributes

Heap *const heap_
 
std::unique_ptr< MarkingWorklistsmarking_worklists_
 
std::unique_ptr< EphemeronRememberedSet::TableListephemeron_table_list_
 
std::unique_ptr< YoungGenerationMainMarkingVisitormain_marking_visitor_
 
MarkingState *const marking_state_
 
NonAtomicMarkingState *const non_atomic_marking_state_
 
Sweeper *const sweeper_
 
std::unique_ptr< PretenuringHandler::PretenuringFeedbackMappretenuring_feedback_
 
std::unique_ptr< YoungGenerationRememberedSetsMarkingWorklistremembered_sets_marking_handler_
 
std::optional< booluse_background_threads_in_cycle_
 
std::atomic< boolis_in_atomic_pause_ {false}
 
std::atomic< boolgc_finalization_requested_ {false}
 

Friends

class IncrementalMarking
 

Detailed Description

Definition at line 148 of file minor-mark-sweep.h.

Member Typedef Documentation

◆ ResizeNewSpaceMode

using v8::internal::MinorMarkSweepCollector::ResizeNewSpaceMode = Heap::ResizeNewSpaceMode
private

Definition at line 196 of file minor-mark-sweep.h.

Constructor & Destructor Documentation

◆ MinorMarkSweepCollector()

v8::internal::MinorMarkSweepCollector::MinorMarkSweepCollector ( Heap * heap)
explicit

Definition at line 285 of file minor-mark-sweep.cc.

◆ ~MinorMarkSweepCollector()

v8::internal::MinorMarkSweepCollector::~MinorMarkSweepCollector ( )
default

Member Function Documentation

◆ ClearNonLiveReferences()

void v8::internal::MinorMarkSweepCollector::ClearNonLiveReferences ( )
private

Definition at line 505 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CollectGarbage()

void v8::internal::MinorMarkSweepCollector::CollectGarbage ( )

Definition at line 413 of file minor-mark-sweep.cc.

Here is the call graph for this function:

◆ DrainMarkingWorklist()

void v8::internal::MinorMarkSweepCollector::DrainMarkingWorklist ( )
private

Definition at line 782 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DrainMarkingWorklistForTesting()

void v8::internal::MinorMarkSweepCollector::DrainMarkingWorklistForTesting ( )
inline

Definition at line 193 of file minor-mark-sweep.h.

Here is the call graph for this function:

◆ ephemeron_table_list()

EphemeronRememberedSet::TableList * v8::internal::MinorMarkSweepCollector::ephemeron_table_list ( ) const
inline

Definition at line 161 of file minor-mark-sweep.h.

◆ EvacuateExternalPointerReferences()

void v8::internal::MinorMarkSweepCollector::EvacuateExternalPointerReferences ( MutablePageMetadata * p)
private

Definition at line 905 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Finish()

void v8::internal::MinorMarkSweepCollector::Finish ( )
private

Definition at line 398 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FinishConcurrentMarking()

void v8::internal::MinorMarkSweepCollector::FinishConcurrentMarking ( )
private

Definition at line 314 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gc_finalization_requsted()

bool v8::internal::MinorMarkSweepCollector::gc_finalization_requsted ( ) const
inline

Definition at line 185 of file minor-mark-sweep.h.

◆ is_in_atomic_pause()

bool v8::internal::MinorMarkSweepCollector::is_in_atomic_pause ( ) const
inline

Definition at line 181 of file minor-mark-sweep.h.

Here is the caller graph for this function:

◆ local_marking_worklists()

MarkingWorklists::Local * v8::internal::MinorMarkSweepCollector::local_marking_worklists ( )
inline

Definition at line 167 of file minor-mark-sweep.h.

Here is the caller graph for this function:

◆ main_marking_visitor()

YoungGenerationMainMarkingVisitor * v8::internal::MinorMarkSweepCollector::main_marking_visitor ( )
inline

Definition at line 177 of file minor-mark-sweep.h.

◆ marking_worklists()

MarkingWorklists * v8::internal::MinorMarkSweepCollector::marking_worklists ( )
inline

Definition at line 165 of file minor-mark-sweep.h.

Here is the caller graph for this function:

◆ MarkLiveObjects()

void v8::internal::MinorMarkSweepCollector::MarkLiveObjects ( )
private

Definition at line 703 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkRoots()

void v8::internal::MinorMarkSweepCollector::MarkRoots ( YoungGenerationRootMarkingVisitor & root_visitor,
bool was_marked_incrementally )
private

Definition at line 643 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkRootsFromConservativeStack()

void v8::internal::MinorMarkSweepCollector::MarkRootsFromConservativeStack ( YoungGenerationRootMarkingVisitor & root_visitor)
private

Definition at line 693 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkRootsFromTracedHandles()

void v8::internal::MinorMarkSweepCollector::MarkRootsFromTracedHandles ( YoungGenerationRootMarkingVisitor & root_visitor)
private

Definition at line 624 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PerformWrapperTracing()

void v8::internal::MinorMarkSweepCollector::PerformWrapperTracing ( )
private

Definition at line 291 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remembered_sets_marking_handler()

YoungGenerationRememberedSetsMarkingWorklist * v8::internal::MinorMarkSweepCollector::remembered_sets_marking_handler ( )
inline

Definition at line 172 of file minor-mark-sweep.h.

Here is the caller graph for this function:

◆ RequestGC()

void v8::internal::MinorMarkSweepCollector::RequestGC ( )

Definition at line 1114 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartMarking()

void v8::internal::MinorMarkSweepCollector::StartMarking ( bool force_use_background_threads)

Definition at line 343 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartSweepNewSpace()

bool v8::internal::MinorMarkSweepCollector::StartSweepNewSpace ( )
private

Definition at line 931 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartSweepNewSpaceWithStickyBits()

void v8::internal::MinorMarkSweepCollector::StartSweepNewSpaceWithStickyBits ( )
private

Definition at line 986 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Sweep()

void v8::internal::MinorMarkSweepCollector::Sweep ( )
private

Definition at line 1063 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sweeper()

Sweeper * v8::internal::MinorMarkSweepCollector::sweeper ( )
inlineprivate

Definition at line 200 of file minor-mark-sweep.h.

Here is the caller graph for this function:

◆ SweepNewLargeSpace()

bool v8::internal::MinorMarkSweepCollector::SweepNewLargeSpace ( )
private

Definition at line 1027 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TearDown()

void v8::internal::MinorMarkSweepCollector::TearDown ( )

Definition at line 302 of file minor-mark-sweep.cc.

Here is the call graph for this function:

◆ TraceFragmentation()

void v8::internal::MinorMarkSweepCollector::TraceFragmentation ( )
private

Definition at line 812 of file minor-mark-sweep.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UseBackgroundThreadsInCycle()

bool v8::internal::MinorMarkSweepCollector::UseBackgroundThreadsInCycle ( ) const
inline

Definition at line 189 of file minor-mark-sweep.h.

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ IncrementalMarking

friend class IncrementalMarking
friend

Definition at line 249 of file minor-mark-sweep.h.

Member Data Documentation

◆ ephemeron_table_list_

std::unique_ptr<EphemeronRememberedSet::TableList> v8::internal::MinorMarkSweepCollector::ephemeron_table_list_
private

Definition at line 231 of file minor-mark-sweep.h.

◆ gc_finalization_requested_

std::atomic<bool> v8::internal::MinorMarkSweepCollector::gc_finalization_requested_ {false}
private

Definition at line 247 of file minor-mark-sweep.h.

◆ heap_

Heap* const v8::internal::MinorMarkSweepCollector::heap_
private

Definition at line 227 of file minor-mark-sweep.h.

◆ is_in_atomic_pause_

std::atomic<bool> v8::internal::MinorMarkSweepCollector::is_in_atomic_pause_ {false}
private

Definition at line 246 of file minor-mark-sweep.h.

◆ kMaxParallelTasks

size_t v8::internal::MinorMarkSweepCollector::kMaxParallelTasks = 8
staticconstexpr

Definition at line 150 of file minor-mark-sweep.h.

◆ main_marking_visitor_

std::unique_ptr<YoungGenerationMainMarkingVisitor> v8::internal::MinorMarkSweepCollector::main_marking_visitor_
private

Definition at line 232 of file minor-mark-sweep.h.

◆ marking_state_

MarkingState* const v8::internal::MinorMarkSweepCollector::marking_state_
private

Definition at line 234 of file minor-mark-sweep.h.

◆ marking_worklists_

std::unique_ptr<MarkingWorklists> v8::internal::MinorMarkSweepCollector::marking_worklists_
private

Definition at line 229 of file minor-mark-sweep.h.

◆ non_atomic_marking_state_

NonAtomicMarkingState* const v8::internal::MinorMarkSweepCollector::non_atomic_marking_state_
private

Definition at line 235 of file minor-mark-sweep.h.

◆ pretenuring_feedback_

std::unique_ptr<PretenuringHandler::PretenuringFeedbackMap> v8::internal::MinorMarkSweepCollector::pretenuring_feedback_
private

Definition at line 239 of file minor-mark-sweep.h.

◆ remembered_sets_marking_handler_

std::unique_ptr<YoungGenerationRememberedSetsMarkingWorklist> v8::internal::MinorMarkSweepCollector::remembered_sets_marking_handler_
private

Definition at line 242 of file minor-mark-sweep.h.

◆ sweeper_

Sweeper* const v8::internal::MinorMarkSweepCollector::sweeper_
private

Definition at line 236 of file minor-mark-sweep.h.

◆ use_background_threads_in_cycle_

std::optional<bool> v8::internal::MinorMarkSweepCollector::use_background_threads_in_cycle_
private

Definition at line 244 of file minor-mark-sweep.h.


The documentation for this class was generated from the following files: