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

#include <gc-tracer.h>

Collaboration diagram for v8::internal::GCTracer:

Classes

struct  BackgroundCounter
 
class  Event
 
struct  IncrementalInfos
 
class  RecordGCPhasesInfo
 
class  Scope
 

Public Types

enum class  MarkingType { kAtomic , kIncremental }
 

Public Member Functions

 GCTracer (Heap *heap, base::TimeTicks startup_time, GarbageCollectionReason initial_gc_reason=GarbageCollectionReason::kUnknown)
 
 GCTracer (const GCTracer &)=delete
 
GCTraceroperator= (const GCTracer &)=delete
 
V8_INLINE CollectionEpoch CurrentEpoch (Scope::ScopeId id) const
 
void StartObservablePause (base::TimeTicks time)
 
void StopObservablePause (GarbageCollector collector, base::TimeTicks time)
 
void UpdateCurrentEvent (GarbageCollectionReason gc_reason, const char *collector_reason)
 
void StartCycle (GarbageCollector collector, GarbageCollectionReason gc_reason, const char *collector_reason, MarkingType marking)
 
void StopYoungCycleIfFinished ()
 
void StopFullCycleIfFinished ()
 
void UpdateMemoryBalancerGCSpeed ()
 
void StartAtomicPause ()
 
void StopAtomicPause ()
 
void StartInSafepoint (base::TimeTicks time)
 
void StopInSafepoint (base::TimeTicks time)
 
void NotifyFullSweepingCompletedAndStopCycleIfFinished ()
 
void NotifyYoungSweepingCompletedAndStopCycleIfFinished ()
 
void NotifyYoungSweepingCompleted ()
 
void NotifyFullCppGCCompleted ()
 
void NotifyYoungCppGCRunning ()
 
void NotifyYoungCppGCCompleted ()
 
void SampleAllocation (base::TimeTicks current, size_t new_space_counter_bytes, size_t old_generation_counter_bytes, size_t embedder_counter_bytes)
 
void AddCompactionEvent (double duration, size_t live_bytes_compacted)
 
void AddSurvivalRatio (double survival_ratio)
 
void SampleConcurrencyEsimate (size_t concurrency)
 
void AddIncrementalMarkingStep (double duration, size_t bytes)
 
void AddIncrementalSweepingStep (double duration)
 
double IncrementalMarkingSpeedInBytesPerMillisecond () const
 
std::optional< double > EmbedderSpeedInBytesPerMillisecond () const
 
std::optional< double > YoungGenerationSpeedInBytesPerMillisecond (YoungGenerationSpeedMode mode) const
 
std::optional< double > CompactionSpeedInBytesPerMillisecond () const
 
std::optional< double > MarkCompactSpeedInBytesPerMillisecond () const
 
std::optional< double > FinalIncrementalMarkCompactSpeedInBytesPerMillisecond () const
 
std::optional< double > OldGenerationSpeedInBytesPerMillisecond ()
 
double NewSpaceAllocationThroughputInBytesPerMillisecond () const
 
double OldGenerationAllocationThroughputInBytesPerMillisecond () const
 
double EmbedderAllocationThroughputInBytesPerMillisecond () const
 
double AllocationThroughputInBytesPerMillisecond () const
 
double AverageSurvivalRatio () const
 
bool SurvivalEventsRecorded () const
 
void ResetSurvivalEvents ()
 
void NotifyIncrementalMarkingStart ()
 
void NotifyMarkingStart ()
 
uint16_t CodeFlushingIncrease () const
 
double AverageMarkCompactMutatorUtilization () const
 
double CurrentMarkCompactMutatorUtilization () const
 
V8_INLINE void AddScopeSample (Scope::ScopeId id, base::TimeDelta duration)
 
void RecordGCPhasesHistograms (RecordGCPhasesInfo::Mode mode)
 
void RecordGCSizeCounters () const
 
void RecordEmbedderMarkingSpeed (size_t bytes, base::TimeDelta duration)
 
std::optional< base::TimeDeltaAverageTimeToIncrementalMarkingTask () const
 
void RecordTimeToIncrementalMarkingTask (base::TimeDelta time_to_task)
 
GarbageCollector GetCurrentCollector () const
 
void UpdateCurrentEventPriority (Priority priority)
 

Static Public Attributes

static constexpr base::TimeDelta kThroughputTimeFrame
 
static constexpr double kConservativeSpeedInBytesPerMillisecond = 128 * KB
 

Private Types

using Priority = v8::Isolate::Priority
 
using BytesAndDurationBuffer = ::heap::base::BytesAndDurationBuffer
 
using SmoothedBytesAndDuration = ::heap::base::SmoothedBytesAndDuration
 

Private Member Functions

void StopCycle (GarbageCollector collector)
 
V8_INLINE double current_scope (Scope::ScopeId id) const
 
V8_INLINE constexpr const IncrementalInfosincremental_scope (Scope::ScopeId id) const
 
void ResetForTesting ()
 
void RecordIncrementalMarkingSpeed (size_t bytes, base::TimeDelta duration)
 
void RecordMutatorUtilization (base::TimeTicks mark_compactor_end_time, base::TimeDelta mark_compactor_duration)
 
void RecordGCSumCounters ()
 
void PrintNVP () const
 
void Print () const
 
void PRINTF_FORMAT (2, 3) Output(const char *format
 
void FetchBackgroundCounters ()
 
void ReportFullCycleToRecorder ()
 
void ReportIncrementalMarkingStepToRecorder (double v8_duration)
 
void ReportIncrementalSweepingStepToRecorder (double v8_duration)
 
void ReportYoungCycleToRecorder ()
 
 FRIEND_TEST (GCTracerTest, AllocationThroughput)
 
 FRIEND_TEST (GCTracerTest, BackgroundScavengerScope)
 
 FRIEND_TEST (GCTracerTest, BackgroundMinorMSScope)
 
 FRIEND_TEST (GCTracerTest, BackgroundMajorMCScope)
 
 FRIEND_TEST (GCTracerTest, CyclePriorities)
 
 FRIEND_TEST (GCTracerTest, EmbedderAllocationThroughput)
 
 FRIEND_TEST (GCTracerTest, MultithreadedBackgroundScope)
 
 FRIEND_TEST (GCTracerTest, NewSpaceAllocationThroughput)
 
 FRIEND_TEST (GCTracerTest, PerGenerationAllocationThroughput)
 
 FRIEND_TEST (GCTracerTest, PerGenerationAllocationThroughputWithProvidedTime)
 
 FRIEND_TEST (GCTracerTest, RegularScope)
 
 FRIEND_TEST (GCTracerTest, IncrementalMarkingDetails)
 
 FRIEND_TEST (GCTracerTest, IncrementalScope)
 
 FRIEND_TEST (GCTracerTest, IncrementalMarkingSpeed)
 
 FRIEND_TEST (GCTracerTest, MutatorUtilization)
 
 FRIEND_TEST (GCTracerTest, RecordMarkCompactHistograms)
 
 FRIEND_TEST (GCTracerTest, RecordScavengerHistograms)
 

Private Attributes

void const
 
Heapheap_
 
Event current_
 
Event previous_
 
std::optional< base::TimeTicksstart_of_observable_pause_
 
CollectionEpoch epoch_young_ = 0
 
CollectionEpoch epoch_full_ = 0
 
double recorded_major_incremental_marking_speed_ = 0.0
 
std::optional< base::TimeDeltaaverage_time_to_incremental_marking_task_
 
std::optional< base::TimeTickslast_marking_start_time_for_code_flushing_
 
uint16_t code_flushing_increase_s_ = 0
 
IncrementalInfos incremental_scopes_ [Scope::NUMBER_OF_INCREMENTAL_SCOPES]
 
base::TimeTicks allocation_time_
 
size_t new_space_allocation_counter_bytes_ = 0
 
size_t old_generation_allocation_counter_bytes_ = 0
 
size_t embedder_allocation_counter_bytes_ = 0
 
std::optional< double > combined_mark_compact_speed_cache_
 
double average_mutator_duration_ = 0.0
 
double average_mark_compact_duration_ = 0.0
 
double current_mark_compact_mutator_utilization_ = 1.0
 
base::TimeTicks previous_mark_compact_end_time_
 
base::TimeDelta total_duration_since_last_mark_compact_
 
BytesAndDurationBuffer recorded_compactions_
 
BytesAndDurationBuffer recorded_incremental_mark_compacts_
 
BytesAndDurationBuffer recorded_mark_compacts_
 
BytesAndDurationBuffer recorded_major_totals_
 
BytesAndDurationBuffer recorded_embedder_marking_
 
SmoothedBytesAndDuration new_generation_allocations_
 
SmoothedBytesAndDuration old_generation_allocations_
 
SmoothedBytesAndDuration embedder_generation_allocations_
 
BytesAndDurationBuffer recorded_minor_gc_per_thread_
 
BytesAndDurationBuffer recorded_minor_gc_atomic_pause_
 
base::RingBuffer< double > recorded_survival_ratios_
 
bool notified_full_sweeping_completed_ = false
 
bool notified_full_cppgc_completed_ = false
 
bool full_cppgc_completed_during_minor_gc_ = false
 
bool notified_young_sweeping_completed_ = false
 
bool notified_young_cppgc_completed_ = false
 
bool notified_young_cppgc_running_ = false
 
bool young_gc_while_full_gc_ = false
 
v8::metrics::GarbageCollectionFullMainThreadBatchedIncrementalMark incremental_mark_batched_events_
 
v8::metrics::GarbageCollectionFullMainThreadBatchedIncrementalSweep incremental_sweep_batched_events_
 
base::Mutex background_scopes_mutex_
 
base::TimeDelta background_scopes_ [Scope::NUMBER_OF_SCOPES]
 

Static Private Attributes

static constexpr base::TimeDelta kSmoothedAllocationSpeedDecayRate
 

Detailed Description

Definition at line 107 of file gc-tracer.h.

Member Typedef Documentation

◆ BytesAndDurationBuffer

◆ Priority

Definition at line 108 of file gc-tracer.h.

◆ SmoothedBytesAndDuration

Member Enumeration Documentation

◆ MarkingType

Enumerator
kAtomic 
kIncremental 

Definition at line 301 of file gc-tracer.h.

Constructor & Destructor Documentation

◆ GCTracer() [1/2]

v8::internal::GCTracer::GCTracer ( Heap * heap,
base::TimeTicks startup_time,
GarbageCollectionReason initial_gc_reason = GarbageCollectionReason::kUnknown )

Definition at line 174 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ GCTracer() [2/2]

v8::internal::GCTracer::GCTracer ( const GCTracer & )
delete

Member Function Documentation

◆ AddCompactionEvent()

void v8::internal::GCTracer::AddCompactionEvent ( double duration,
size_t live_bytes_compacted )

Definition at line 727 of file gc-tracer.cc.

Here is the call graph for this function:

◆ AddIncrementalMarkingStep()

void v8::internal::GCTracer::AddIncrementalMarkingStep ( double duration,
size_t bytes )

Definition at line 737 of file gc-tracer.cc.

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

◆ AddIncrementalSweepingStep()

void v8::internal::GCTracer::AddIncrementalSweepingStep ( double duration)

Definition at line 746 of file gc-tracer.cc.

Here is the call graph for this function:

◆ AddScopeSample()

void v8::internal::GCTracer::AddScopeSample ( Scope::ScopeId id,
base::TimeDelta duration )

Definition at line 122 of file gc-tracer-inl.h.

Here is the call graph for this function:

◆ AddSurvivalRatio()

void v8::internal::GCTracer::AddSurvivalRatio ( double survival_ratio)

Definition at line 733 of file gc-tracer.cc.

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

◆ AllocationThroughputInBytesPerMillisecond()

double v8::internal::GCTracer::AllocationThroughputInBytesPerMillisecond ( ) const

Definition at line 1405 of file gc-tracer.cc.

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

◆ AverageMarkCompactMutatorUtilization()

double v8::internal::GCTracer::AverageMarkCompactMutatorUtilization ( ) const

Definition at line 1312 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ AverageSurvivalRatio()

double v8::internal::GCTracer::AverageSurvivalRatio ( ) const

Definition at line 1410 of file gc-tracer.cc.

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

◆ AverageTimeToIncrementalMarkingTask()

std::optional< base::TimeDelta > v8::internal::GCTracer::AverageTimeToIncrementalMarkingTask ( ) const

Definition at line 1275 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ CodeFlushingIncrease()

uint16_t v8::internal::GCTracer::CodeFlushingIncrease ( ) const

Definition at line 723 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ CompactionSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::CompactionSpeedInBytesPerMillisecond ( ) const

Definition at line 1349 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ current_scope()

double v8::internal::GCTracer::current_scope ( Scope::ScopeId id) const
private

Definition at line 112 of file gc-tracer-inl.h.

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

◆ CurrentEpoch()

CollectionEpoch v8::internal::GCTracer::CurrentEpoch ( Scope::ScopeId id) const

Definition at line 108 of file gc-tracer-inl.h.

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

◆ CurrentMarkCompactMutatorUtilization()

double v8::internal::GCTracer::CurrentMarkCompactMutatorUtilization ( ) const

Definition at line 1319 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ EmbedderAllocationThroughputInBytesPerMillisecond()

double v8::internal::GCTracer::EmbedderAllocationThroughputInBytesPerMillisecond ( ) const

Definition at line 1401 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ EmbedderSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::EmbedderSpeedInBytesPerMillisecond ( ) const

Definition at line 1334 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ FetchBackgroundCounters()

void v8::internal::GCTracer::FetchBackgroundCounters ( )
private

Definition at line 1427 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ FinalIncrementalMarkCompactSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::FinalIncrementalMarkCompactSpeedInBytesPerMillisecond ( ) const

Definition at line 1358 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ FRIEND_TEST() [1/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
AllocationThroughput  )
private

◆ FRIEND_TEST() [2/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
BackgroundMajorMCScope  )
private

◆ FRIEND_TEST() [3/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
BackgroundMinorMSScope  )
private

◆ FRIEND_TEST() [4/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
BackgroundScavengerScope  )
private

◆ FRIEND_TEST() [5/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
CyclePriorities  )
private

◆ FRIEND_TEST() [6/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
EmbedderAllocationThroughput  )
private

◆ FRIEND_TEST() [7/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
IncrementalMarkingDetails  )
private

◆ FRIEND_TEST() [8/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
IncrementalMarkingSpeed  )
private

◆ FRIEND_TEST() [9/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
IncrementalScope  )
private

◆ FRIEND_TEST() [10/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
MultithreadedBackgroundScope  )
private

◆ FRIEND_TEST() [11/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
MutatorUtilization  )
private

◆ FRIEND_TEST() [12/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
NewSpaceAllocationThroughput  )
private

◆ FRIEND_TEST() [13/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
PerGenerationAllocationThroughput  )
private

◆ FRIEND_TEST() [14/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
PerGenerationAllocationThroughputWithProvidedTime  )
private

◆ FRIEND_TEST() [15/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
RecordMarkCompactHistograms  )
private

◆ FRIEND_TEST() [16/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
RecordScavengerHistograms  )
private

◆ FRIEND_TEST() [17/17]

v8::internal::GCTracer::FRIEND_TEST ( GCTracerTest ,
RegularScope  )
private

◆ GetCurrentCollector()

GarbageCollector v8::internal::GCTracer::GetCurrentCollector ( ) const

Definition at line 1936 of file gc-tracer.cc.

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

◆ incremental_scope()

const GCTracer::IncrementalInfos & v8::internal::GCTracer::incremental_scope ( Scope::ScopeId id) const
constexprprivate

Definition at line 117 of file gc-tracer-inl.h.

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

◆ IncrementalMarkingSpeedInBytesPerMillisecond()

double v8::internal::GCTracer::IncrementalMarkingSpeedInBytesPerMillisecond ( ) const

Definition at line 1323 of file gc-tracer.cc.

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

◆ MarkCompactSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::MarkCompactSpeedInBytesPerMillisecond ( ) const

Definition at line 1353 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ NewSpaceAllocationThroughputInBytesPerMillisecond()

double v8::internal::GCTracer::NewSpaceAllocationThroughputInBytesPerMillisecond ( ) const

Definition at line 1392 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ NotifyFullCppGCCompleted()

void v8::internal::GCTracer::NotifyFullCppGCCompleted ( )

Definition at line 595 of file gc-tracer.cc.

Here is the call graph for this function:

◆ NotifyFullSweepingCompletedAndStopCycleIfFinished()

void v8::internal::GCTracer::NotifyFullSweepingCompletedAndStopCycleIfFinished ( )

Definition at line 537 of file gc-tracer.cc.

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

◆ NotifyIncrementalMarkingStart()

void v8::internal::GCTracer::NotifyIncrementalMarkingStart ( )

Definition at line 1423 of file gc-tracer.cc.

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

◆ NotifyMarkingStart()

void v8::internal::GCTracer::NotifyMarkingStart ( )

Definition at line 687 of file gc-tracer.cc.

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

◆ NotifyYoungCppGCCompleted()

void v8::internal::GCTracer::NotifyYoungCppGCCompleted ( )

Definition at line 615 of file gc-tracer.cc.

Here is the call graph for this function:

◆ NotifyYoungCppGCRunning()

void v8::internal::GCTracer::NotifyYoungCppGCRunning ( )

Definition at line 629 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ NotifyYoungSweepingCompleted()

void v8::internal::GCTracer::NotifyYoungSweepingCompleted ( )

Definition at line 571 of file gc-tracer.cc.

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

◆ NotifyYoungSweepingCompletedAndStopCycleIfFinished()

void v8::internal::GCTracer::NotifyYoungSweepingCompletedAndStopCycleIfFinished ( )

Definition at line 589 of file gc-tracer.cc.

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

◆ OldGenerationAllocationThroughputInBytesPerMillisecond()

double v8::internal::GCTracer::OldGenerationAllocationThroughputInBytesPerMillisecond ( ) const

Definition at line 1396 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ OldGenerationSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::OldGenerationSpeedInBytesPerMillisecond ( )

Definition at line 1362 of file gc-tracer.cc.

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

◆ operator=()

GCTracer & v8::internal::GCTracer::operator= ( const GCTracer & )
delete

◆ Print()

void v8::internal::GCTracer::Print ( ) const
private

Definition at line 769 of file gc-tracer.cc.

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

◆ PRINTF_FORMAT()

void v8::internal::GCTracer::PRINTF_FORMAT ( 2 ,
3  ) const
private

◆ PrintNVP()

void v8::internal::GCTracer::PrintNVP ( ) const
private

Definition at line 821 of file gc-tracer.cc.

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

◆ RecordEmbedderMarkingSpeed()

void v8::internal::GCTracer::RecordEmbedderMarkingSpeed ( size_t bytes,
base::TimeDelta duration )

Definition at line 1280 of file gc-tracer.cc.

Here is the call graph for this function:

◆ RecordGCPhasesHistograms()

void v8::internal::GCTracer::RecordGCPhasesHistograms ( RecordGCPhasesInfo::Mode mode)

Definition at line 1444 of file gc-tracer.cc.

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

◆ RecordGCSizeCounters()

void v8::internal::GCTracer::RecordGCSizeCounters ( ) const

Definition at line 1522 of file gc-tracer.cc.

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

◆ RecordGCSumCounters()

void v8::internal::GCTracer::RecordGCSumCounters ( )
private

Definition at line 1475 of file gc-tracer.cc.

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

◆ RecordIncrementalMarkingSpeed()

void v8::internal::GCTracer::RecordIncrementalMarkingSpeed ( size_t bytes,
base::TimeDelta duration )
private

Definition at line 1251 of file gc-tracer.cc.

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

◆ RecordMutatorUtilization()

void v8::internal::GCTracer::RecordMutatorUtilization ( base::TimeTicks mark_compactor_end_time,
base::TimeDelta mark_compactor_duration )
private

Definition at line 1285 of file gc-tracer.cc.

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

◆ RecordTimeToIncrementalMarkingTask()

void v8::internal::GCTracer::RecordTimeToIncrementalMarkingTask ( base::TimeDelta time_to_task)

Definition at line 1265 of file gc-tracer.cc.

◆ ReportFullCycleToRecorder()

void v8::internal::GCTracer::ReportFullCycleToRecorder ( )
private

Definition at line 1607 of file gc-tracer.cc.

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

◆ ReportIncrementalMarkingStepToRecorder()

void v8::internal::GCTracer::ReportIncrementalMarkingStepToRecorder ( double v8_duration)
private

Definition at line 1809 of file gc-tracer.cc.

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

◆ ReportIncrementalSweepingStepToRecorder()

void v8::internal::GCTracer::ReportIncrementalSweepingStepToRecorder ( double v8_duration)
private

Definition at line 1838 of file gc-tracer.cc.

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

◆ ReportYoungCycleToRecorder()

void v8::internal::GCTracer::ReportYoungCycleToRecorder ( )
private

Definition at line 1854 of file gc-tracer.cc.

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

◆ ResetForTesting()

void v8::internal::GCTracer::ResetForTesting ( )
private

Definition at line 199 of file gc-tracer.cc.

Here is the call graph for this function:

◆ ResetSurvivalEvents()

void v8::internal::GCTracer::ResetSurvivalEvents ( )

Definition at line 1421 of file gc-tracer.cc.

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

◆ SampleAllocation()

void v8::internal::GCTracer::SampleAllocation ( base::TimeTicks current,
size_t new_space_counter_bytes,
size_t old_generation_counter_bytes,
size_t embedder_counter_bytes )

Definition at line 634 of file gc-tracer.cc.

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

◆ SampleConcurrencyEsimate()

void v8::internal::GCTracer::SampleConcurrencyEsimate ( size_t concurrency)

Definition at line 680 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ StartAtomicPause()

void v8::internal::GCTracer::StartAtomicPause ( )

Definition at line 302 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ StartCycle()

void v8::internal::GCTracer::StartCycle ( GarbageCollector collector,
GarbageCollectionReason gc_reason,
const char * collector_reason,
MarkingType marking )

Definition at line 228 of file gc-tracer.cc.

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

◆ StartInSafepoint()

void v8::internal::GCTracer::StartInSafepoint ( base::TimeTicks time)

Definition at line 307 of file gc-tracer.cc.

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

◆ StartObservablePause()

void v8::internal::GCTracer::StartObservablePause ( base::TimeTicks time)

Definition at line 206 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ StopAtomicPause()

void v8::internal::GCTracer::StopAtomicPause ( )

Definition at line 442 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ StopCycle()

void v8::internal::GCTracer::StopCycle ( GarbageCollector collector)
private

Definition at line 464 of file gc-tracer.cc.

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

◆ StopFullCycleIfFinished()

void v8::internal::GCTracer::StopFullCycleIfFinished ( )

Definition at line 506 of file gc-tracer.cc.

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

◆ StopInSafepoint()

void v8::internal::GCTracer::StopInSafepoint ( base::TimeTicks time)

Definition at line 322 of file gc-tracer.cc.

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

◆ StopObservablePause()

void v8::internal::GCTracer::StopObservablePause ( GarbageCollector collector,
base::TimeTicks time )

Definition at line 338 of file gc-tracer.cc.

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

◆ StopYoungCycleIfFinished()

void v8::internal::GCTracer::StopYoungCycleIfFinished ( )

Definition at line 516 of file gc-tracer.cc.

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

◆ SurvivalEventsRecorded()

bool v8::internal::GCTracer::SurvivalEventsRecorded ( ) const

Definition at line 1417 of file gc-tracer.cc.

Here is the call graph for this function:

◆ UpdateCurrentEvent()

void v8::internal::GCTracer::UpdateCurrentEvent ( GarbageCollectionReason gc_reason,
const char * collector_reason )

Definition at line 211 of file gc-tracer.cc.

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

◆ UpdateCurrentEventPriority()

void v8::internal::GCTracer::UpdateCurrentEventPriority ( GCTracer::Priority priority)

Definition at line 1951 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ UpdateMemoryBalancerGCSpeed()

void v8::internal::GCTracer::UpdateMemoryBalancerGCSpeed ( )

Definition at line 416 of file gc-tracer.cc.

Here is the caller graph for this function:

◆ YoungGenerationSpeedInBytesPerMillisecond()

std::optional< double > v8::internal::GCTracer::YoungGenerationSpeedInBytesPerMillisecond ( YoungGenerationSpeedMode mode) const

Definition at line 1338 of file gc-tracer.cc.

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

Member Data Documentation

◆ allocation_time_

base::TimeTicks v8::internal::GCTracer::allocation_time_
private

Definition at line 542 of file gc-tracer.h.

◆ average_mark_compact_duration_

double v8::internal::GCTracer::average_mark_compact_duration_ = 0.0
private

Definition at line 551 of file gc-tracer.h.

◆ average_mutator_duration_

double v8::internal::GCTracer::average_mutator_duration_ = 0.0
private

Definition at line 550 of file gc-tracer.h.

◆ average_time_to_incremental_marking_task_

std::optional<base::TimeDelta> v8::internal::GCTracer::average_time_to_incremental_marking_task_
private

Definition at line 530 of file gc-tracer.h.

◆ background_scopes_

base::TimeDelta v8::internal::GCTracer::background_scopes_[Scope::NUMBER_OF_SCOPES]
private

Definition at line 606 of file gc-tracer.h.

◆ background_scopes_mutex_

base::Mutex v8::internal::GCTracer::background_scopes_mutex_
mutableprivate

Definition at line 605 of file gc-tracer.h.

◆ code_flushing_increase_s_

uint16_t v8::internal::GCTracer::code_flushing_increase_s_ = 0
private

Definition at line 535 of file gc-tracer.h.

◆ combined_mark_compact_speed_cache_

std::optional<double> v8::internal::GCTracer::combined_mark_compact_speed_cache_
private

Definition at line 547 of file gc-tracer.h.

◆ const

void v8::internal::GCTracer::const
private

Definition at line 501 of file gc-tracer.h.

◆ current_

Event v8::internal::GCTracer::current_
private

Definition at line 515 of file gc-tracer.h.

◆ current_mark_compact_mutator_utilization_

double v8::internal::GCTracer::current_mark_compact_mutator_utilization_ = 1.0
private

Definition at line 552 of file gc-tracer.h.

◆ embedder_allocation_counter_bytes_

size_t v8::internal::GCTracer::embedder_allocation_counter_bytes_ = 0
private

Definition at line 545 of file gc-tracer.h.

◆ embedder_generation_allocations_

SmoothedBytesAndDuration v8::internal::GCTracer::embedder_generation_allocations_
private
Initial value:
{
static constexpr base::TimeDelta kSmoothedAllocationSpeedDecayRate
Definition gc-tracer.h:565

Definition at line 572 of file gc-tracer.h.

◆ epoch_full_

CollectionEpoch v8::internal::GCTracer::epoch_full_ = 0
private

Definition at line 525 of file gc-tracer.h.

◆ epoch_young_

CollectionEpoch v8::internal::GCTracer::epoch_young_ = 0
private

Definition at line 524 of file gc-tracer.h.

◆ full_cppgc_completed_during_minor_gc_

bool v8::internal::GCTracer::full_cppgc_completed_during_minor_gc_ = false
private

Definition at line 585 of file gc-tracer.h.

◆ heap_

Heap* v8::internal::GCTracer::heap_
private

Definition at line 511 of file gc-tracer.h.

◆ incremental_mark_batched_events_

v8::metrics::GarbageCollectionFullMainThreadBatchedIncrementalMark v8::internal::GCTracer::incremental_mark_batched_events_
private

Definition at line 601 of file gc-tracer.h.

◆ incremental_scopes_

IncrementalInfos v8::internal::GCTracer::incremental_scopes_[Scope::NUMBER_OF_INCREMENTAL_SCOPES]
private

Definition at line 539 of file gc-tracer.h.

◆ incremental_sweep_batched_events_

v8::metrics::GarbageCollectionFullMainThreadBatchedIncrementalSweep v8::internal::GCTracer::incremental_sweep_batched_events_
private

Definition at line 603 of file gc-tracer.h.

◆ kConservativeSpeedInBytesPerMillisecond

double v8::internal::GCTracer::kConservativeSpeedInBytesPerMillisecond = 128 * KB
staticconstexpr

Definition at line 278 of file gc-tracer.h.

◆ kSmoothedAllocationSpeedDecayRate

base::TimeDelta v8::internal::GCTracer::kSmoothedAllocationSpeedDecayRate
staticconstexprprivate
Initial value:
=
static constexpr TimeDelta FromMilliseconds(int64_t milliseconds)
Definition time.h:84

Definition at line 565 of file gc-tracer.h.

◆ kThroughputTimeFrame

base::TimeDelta v8::internal::GCTracer::kThroughputTimeFrame
staticconstexpr
Initial value:
=
static constexpr TimeDelta FromSeconds(int64_t seconds)
Definition time.h:81

Definition at line 276 of file gc-tracer.h.

◆ last_marking_start_time_for_code_flushing_

std::optional<base::TimeTicks> v8::internal::GCTracer::last_marking_start_time_for_code_flushing_
private

Definition at line 534 of file gc-tracer.h.

◆ new_generation_allocations_

SmoothedBytesAndDuration v8::internal::GCTracer::new_generation_allocations_
private
Initial value:

Definition at line 568 of file gc-tracer.h.

◆ new_space_allocation_counter_bytes_

size_t v8::internal::GCTracer::new_space_allocation_counter_bytes_ = 0
private

Definition at line 543 of file gc-tracer.h.

◆ notified_full_cppgc_completed_

bool v8::internal::GCTracer::notified_full_cppgc_completed_ = false
private

Definition at line 584 of file gc-tracer.h.

◆ notified_full_sweeping_completed_

bool v8::internal::GCTracer::notified_full_sweeping_completed_ = false
private

Definition at line 583 of file gc-tracer.h.

◆ notified_young_cppgc_completed_

bool v8::internal::GCTracer::notified_young_cppgc_completed_ = false
private

Definition at line 590 of file gc-tracer.h.

◆ notified_young_cppgc_running_

bool v8::internal::GCTracer::notified_young_cppgc_running_ = false
private

Definition at line 593 of file gc-tracer.h.

◆ notified_young_sweeping_completed_

bool v8::internal::GCTracer::notified_young_sweeping_completed_ = false
private

Definition at line 587 of file gc-tracer.h.

◆ old_generation_allocation_counter_bytes_

size_t v8::internal::GCTracer::old_generation_allocation_counter_bytes_ = 0
private

Definition at line 544 of file gc-tracer.h.

◆ old_generation_allocations_

SmoothedBytesAndDuration v8::internal::GCTracer::old_generation_allocations_
private
Initial value:

Definition at line 570 of file gc-tracer.h.

◆ previous_

Event v8::internal::GCTracer::previous_
private

Definition at line 518 of file gc-tracer.h.

◆ previous_mark_compact_end_time_

base::TimeTicks v8::internal::GCTracer::previous_mark_compact_end_time_
private

Definition at line 556 of file gc-tracer.h.

◆ recorded_compactions_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_compactions_
private

Definition at line 559 of file gc-tracer.h.

◆ recorded_embedder_marking_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_embedder_marking_
private

Definition at line 563 of file gc-tracer.h.

◆ recorded_incremental_mark_compacts_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_incremental_mark_compacts_
private

Definition at line 560 of file gc-tracer.h.

◆ recorded_major_incremental_marking_speed_

double v8::internal::GCTracer::recorded_major_incremental_marking_speed_ = 0.0
private

Definition at line 528 of file gc-tracer.h.

◆ recorded_major_totals_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_major_totals_
private

Definition at line 562 of file gc-tracer.h.

◆ recorded_mark_compacts_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_mark_compacts_
private

Definition at line 561 of file gc-tracer.h.

◆ recorded_minor_gc_atomic_pause_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_minor_gc_atomic_pause_
private

Definition at line 578 of file gc-tracer.h.

◆ recorded_minor_gc_per_thread_

BytesAndDurationBuffer v8::internal::GCTracer::recorded_minor_gc_per_thread_
private

Definition at line 577 of file gc-tracer.h.

◆ recorded_survival_ratios_

base::RingBuffer<double> v8::internal::GCTracer::recorded_survival_ratios_
private

Definition at line 579 of file gc-tracer.h.

◆ start_of_observable_pause_

std::optional<base::TimeTicks> v8::internal::GCTracer::start_of_observable_pause_
private

Definition at line 521 of file gc-tracer.h.

◆ total_duration_since_last_mark_compact_

base::TimeDelta v8::internal::GCTracer::total_duration_since_last_mark_compact_
private

Definition at line 557 of file gc-tracer.h.

◆ young_gc_while_full_gc_

bool v8::internal::GCTracer::young_gc_while_full_gc_ = false
private

Definition at line 598 of file gc-tracer.h.


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