37 PrintF(
"finalize sweeping");
44 size_t idle_time_in_ms,
size_t marking_speed_in_bytes_per_ms) {
45 DCHECK(idle_time_in_ms > 0);
47 if (marking_speed_in_bytes_per_ms == 0) {
51 size_t marking_step_size = marking_speed_in_bytes_per_ms * idle_time_in_ms;
52 if (marking_step_size / marking_speed_in_bytes_per_ms != idle_time_in_ms) {
65 size_t size_of_objects,
size_t mark_compact_speed_in_bytes_per_ms) {
66 if (mark_compact_speed_in_bytes_per_ms == 0) {
69 size_t result = size_of_objects / mark_compact_speed_in_bytes_per_ms;
75 size_t new_space_size,
size_t scavenge_speed_in_bytes_per_ms) {
76 if (scavenge_speed_in_bytes_per_ms == 0) {
79 return new_space_size / scavenge_speed_in_bytes_per_ms;
84 size_t available_new_space_memory,
85 size_t new_space_allocation_throughput_in_bytes_per_ms) {
86 if (available_new_space_memory <=
87 new_space_allocation_throughput_in_bytes_per_ms *
130 if (idle_time_in_ms == 0) {
135 size_t estimated_time_in_ms =
138 if (idle_time_in_ms >= estimated_time_in_ms ||
146 int remaining_mark_sweeps =
150 (remaining_mark_sweeps <= 2 ||
GCIdleTimeActionType type
static GCIdleTimeAction Done()
static GCIdleTimeAction Scavenge()
static GCIdleTimeAction FinalizeSweeping()
static GCIdleTimeAction FullGC()
static GCIdleTimeAction Nothing()
static GCIdleTimeAction IncrementalMarking(intptr_t step_size)
static size_t EstimateScavengeTime(size_t new_space_size, size_t scavenger_speed_in_bytes_per_ms)
static const size_t kSmallHeapSize
static const double kConservativeTimeRatio
int mark_compacts_since_idle_round_started_
static const size_t kInitialConservativeMarkingSpeed
static const size_t kInitialConservativeMarkCompactSpeed
static const size_t kMinTimeForFinalizeSweeping
static const size_t kMaxFrameRenderingIdleTime
bool EnoughGarbageSinceLastIdleRound()
GCIdleTimeAction Compute(size_t idle_time_in_ms, HeapState heap_state)
static const size_t kMaxMarkCompactTimeInMs
bool IsMarkCompactIdleRoundFinished()
static const size_t kInitialConservativeScavengeSpeed
static size_t EstimateMarkCompactTime(size_t size_of_objects, size_t mark_compact_speed_in_bytes_per_ms)
static const size_t kMaximumMarkingStepSize
static bool ScavangeMayHappenSoon(size_t available_new_space_memory, size_t new_space_allocation_throughput_in_bytes_per_ms)
static size_t EstimateMarkingStepSize(size_t idle_time_in_ms, size_t marking_speed_in_bytes_per_ms)
static const int kIdleScavengeThreshold
static const int kMaxMarkCompactsInIdleRound
#define DCHECK(condition)
static LifetimePosition Min(LifetimePosition a, LifetimePosition b)
void PrintF(const char *format,...)
Debugger support for the V8 JavaScript engine.
size_t incremental_marking_speed_in_bytes_per_ms
size_t available_new_space_memory
bool sweeping_in_progress
bool incremental_marking_stopped
bool can_start_incremental_marking
size_t new_space_capacity
size_t scavenge_speed_in_bytes_per_ms
size_t mark_compact_speed_in_bytes_per_ms
size_t new_space_allocation_throughput_in_bytes_per_ms