V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::internal::IncrementalMarking Class Reference

Classes

class  PauseBlackAllocationScope
 

Public Types

enum  State { STOPPED, SWEEPING, MARKING, COMPLETE }
 
enum  CompletionAction { GC_VIA_STACK_GUARD, NO_GC_VIA_STACK_GUARD }
 
enum  ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION }
 
enum  GCRequestType { NONE, COMPLETE_MARKING, FINALIZATION }
 
using MarkingState = MajorNonAtomicMarkingState
 
using AtomicMarkingState = MajorAtomicMarkingState
 
using NonAtomicMarkingState = MajorNonAtomicMarkingState
 

Public Member Functions

 IncrementalMarking (Heap *heap, MarkCompactCollector::MarkingWorklist *marking_worklist, WeakObjects *weak_objects)
 
MarkingStatemarking_state ()
 
AtomicMarkingStateatomic_marking_state ()
 
NonAtomicMarkingStatenon_atomic_marking_state ()
 
void NotifyLeftTrimming (HeapObject *from, HeapObject *to)
 
V8_INLINE void TransferColor (HeapObject *from, HeapObject *to)
 
State state () const
 
bool should_hurry () const
 
void set_should_hurry (bool val)
 
bool finalize_marking_completed () const
 
void SetWeakClosureWasOverApproximatedForTesting (bool val)
 
bool IsStopped () const
 
bool IsSweeping () const
 
bool IsMarking () const
 
bool IsMarkingIncomplete () const
 
bool IsComplete () const
 
bool IsReadyToOverApproximateWeakClosure () const
 
bool NeedsFinalization ()
 
GCRequestType request_type () const
 
void reset_request_type ()
 
bool CanBeActivated ()
 
bool WasActivated ()
 
void Start (GarbageCollectionReason gc_reason)
 
void FinalizeIncrementally ()
 
void UpdateMarkingWorklistAfterScavenge ()
 
void UpdateWeakReferencesAfterScavenge ()
 
void UpdateMarkedBytesAfterScavenge (size_t dead_bytes_in_new_space)
 
void Hurry ()
 
void Finalize ()
 
void Stop ()
 
void FinalizeMarking (CompletionAction action)
 
void MarkingComplete (CompletionAction action)
 
void Epilogue ()
 
double AdvanceIncrementalMarking (double deadline_in_ms, CompletionAction completion_action, StepOrigin step_origin)
 
void FinalizeSweeping ()
 
size_t Step (size_t bytes_to_process, CompletionAction action, StepOrigin step_origin, WorklistToProcess worklist_to_process=WorklistToProcess::kAll)
 
bool ShouldDoEmbedderStep ()
 
void EmbedderStep (double duration)
 
void RestartIfNotMarking ()
 
V8_INLINE bool BaseRecordWrite (HeapObject *obj, Object *value)
 
V8_INLINE void RecordWrite (HeapObject *obj, ObjectSlot slot, Object *value)
 
V8_INLINE void RecordMaybeWeakWrite (HeapObject *obj, MaybeObjectSlot slot, MaybeObject value)
 
void RevisitObject (HeapObject *obj)
 
void RecordWriteSlow (HeapObject *obj, HeapObjectSlot slot, Object *value)
 
void RecordWriteIntoCode (Code host, RelocInfo *rinfo, HeapObject *value)
 
bool WhiteToGreyAndPush (HeapObject *obj)
 
void MarkBlackAndPush (HeapObject *obj)
 
bool IsCompacting ()
 
void NotifyIncompleteScanOfObject (int unscanned_bytes)
 
void ProcessBlackAllocatedObject (HeapObject *obj)
 
Heapheap () const
 
IncrementalMarkingJobincremental_marking_job ()
 
bool black_allocation ()
 
void StartBlackAllocationForTesting ()
 
MarkCompactCollector::MarkingWorklistmarking_worklist () const
 
void Deactivate ()
 
template<WorklistToProcess worklist_to_process>
intptr_t ProcessMarkingWorklist (intptr_t bytes_to_process, ForceCompletionAction completion)
 

Static Public Member Functions

static int RecordWriteFromCode (HeapObject *obj, Address slot_address, Isolate *isolate)
 

Static Public Attributes

static const size_t kYoungGenerationAllocatedThreshold = 64 * KB
 
static const size_t kOldGenerationAllocatedThreshold = 256 * KB
 
static const size_t kMinStepSizeInBytes = 64 * KB
 
static const int kStepSizeInMs = 1
 
static const int kMaxStepSizeInMs = 5
 
static const intptr_t kActivationThreshold = 8 * MB
 
static const AccessMode kAtomicity = AccessMode::NON_ATOMIC
 

Detailed Description

Definition at line 25 of file incremental-marking.h.


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