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

#include <scavenger.h>

Collaboration diagram for v8::internal::ScavengerCollector:

Classes

class  JobTask
 
struct  PinnedObjectEntry
 
class  QuarantinedPageSweeper
 

Public Types

using PinnedObjects = std::vector<PinnedObjectEntry>
 

Public Member Functions

 ScavengerCollector (Heap *heap)
 
void CollectGarbage ()
 
void CompleteSweepingQuarantinedPagesIfNeeded ()
 

Static Public Attributes

static const int kMaxScavengerTasks = 8
 
static const int kMainThreadId = 0
 

Private Member Functions

void MergeSurvivingNewLargeObjects (const SurvivingNewLargeObjectsMap &objects)
 
int NumberOfScavengeTasks ()
 
void ProcessWeakReferences (EphemeronRememberedSet::TableList *ephemeron_table_list)
 
void ClearYoungEphemerons (EphemeronRememberedSet::TableList *ephemeron_table_list)
 
void ClearOldEphemerons ()
 
void HandleSurvivingNewLargeObjects ()
 
void SweepArrayBufferExtensions ()
 
size_t FetchAndResetConcurrencyEstimate ()
 

Private Attributes

Isolate *const isolate_
 
Heap *const heap_
 
SurvivingNewLargeObjectsMap surviving_new_large_objects_
 
std::atomic< size_testimate_concurrency_ {0}
 
QuarantinedPageSweeper quarantined_page_sweeper_
 

Friends

class Scavenger
 

Detailed Description

Definition at line 234 of file scavenger.h.

Member Typedef Documentation

◆ PinnedObjects

Definition at line 241 of file scavenger.h.

Constructor & Destructor Documentation

◆ ScavengerCollector()

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

Definition at line 305 of file scavenger.cc.

Member Function Documentation

◆ ClearOldEphemerons()

void v8::internal::ScavengerCollector::ClearOldEphemerons ( )
private

Definition at line 1307 of file scavenger.cc.

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

◆ ClearYoungEphemerons()

void v8::internal::ScavengerCollector::ClearYoungEphemerons ( EphemeronRememberedSet::TableList * ephemeron_table_list)
private

Definition at line 1286 of file scavenger.cc.

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

◆ CollectGarbage()

void v8::internal::ScavengerCollector::CollectGarbage ( )

Definition at line 804 of file scavenger.cc.

◆ CompleteSweepingQuarantinedPagesIfNeeded()

void v8::internal::ScavengerCollector::CompleteSweepingQuarantinedPagesIfNeeded ( )

Definition at line 1081 of file scavenger.cc.

Here is the call graph for this function:

◆ FetchAndResetConcurrencyEstimate()

size_t v8::internal::ScavengerCollector::FetchAndResetConcurrencyEstimate ( )
inlineprivate

Definition at line 370 of file scavenger.h.

Here is the caller graph for this function:

◆ HandleSurvivingNewLargeObjects()

void v8::internal::ScavengerCollector::HandleSurvivingNewLargeObjects ( )
private

Definition at line 1054 of file scavenger.cc.

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

◆ MergeSurvivingNewLargeObjects()

void v8::internal::ScavengerCollector::MergeSurvivingNewLargeObjects ( const SurvivingNewLargeObjectsMap & objects)
private

Definition at line 1072 of file scavenger.cc.

Here is the caller graph for this function:

◆ NumberOfScavengeTasks()

int v8::internal::ScavengerCollector::NumberOfScavengeTasks ( )
private

Definition at line 1089 of file scavenger.cc.

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

◆ ProcessWeakReferences()

void v8::internal::ScavengerCollector::ProcessWeakReferences ( EphemeronRememberedSet::TableList * ephemeron_table_list)
private

Definition at line 1278 of file scavenger.cc.

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

◆ SweepArrayBufferExtensions()

void v8::internal::ScavengerCollector::SweepArrayBufferExtensions ( )
private

Definition at line 1045 of file scavenger.cc.

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

Friends And Related Symbol Documentation

◆ Scavenger

friend class Scavenger
friend

Definition at line 382 of file scavenger.h.

Member Data Documentation

◆ estimate_concurrency_

std::atomic<size_t> v8::internal::ScavengerCollector::estimate_concurrency_ {0}
private

Definition at line 379 of file scavenger.h.

◆ heap_

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

Definition at line 377 of file scavenger.h.

◆ isolate_

Isolate* const v8::internal::ScavengerCollector::isolate_
private

Definition at line 376 of file scavenger.h.

◆ kMainThreadId

const int v8::internal::ScavengerCollector::kMainThreadId = 0
static

Definition at line 244 of file scavenger.h.

◆ kMaxScavengerTasks

const int v8::internal::ScavengerCollector::kMaxScavengerTasks = 8
static

Definition at line 243 of file scavenger.h.

◆ quarantined_page_sweeper_

QuarantinedPageSweeper v8::internal::ScavengerCollector::quarantined_page_sweeper_
private

Definition at line 380 of file scavenger.h.

◆ surviving_new_large_objects_

SurvivingNewLargeObjectsMap v8::internal::ScavengerCollector::surviving_new_large_objects_
private

Definition at line 378 of file scavenger.h.


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