Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index ef947c95f780bcbd5a552f0c84565ae3b2a06236..11fc6ff55c57724cb5b4baf7e17cb9933e8b3da9 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -11,6 +11,7 @@ |
#include "src/assert-scope.h" |
#include "src/counters.h" |
#include "src/globals.h" |
+#include "src/heap/gc-idle-time-handler.h" |
#include "src/heap/gc-tracer.h" |
#include "src/heap/incremental-marking.h" |
#include "src/heap/mark-compact.h" |
@@ -1928,30 +1929,7 @@ class Heap { |
void SelectScavengingVisitorsTable(); |
- void StartIdleRound() { mark_sweeps_since_idle_round_started_ = 0; } |
- |
- void FinishIdleRound() { |
- mark_sweeps_since_idle_round_started_ = kMaxMarkSweepsInIdleRound; |
- scavenges_since_last_idle_round_ = 0; |
- } |
- |
- bool EnoughGarbageSinceLastIdleRound() { |
- return (scavenges_since_last_idle_round_ >= kIdleScavengeThreshold); |
- } |
- |
- // Estimates how many milliseconds a Mark-Sweep would take to complete. |
- // In idle notification handler we assume that this function will return: |
- // - a number less than 10 for small heaps, which are less than 8Mb. |
- // - a number greater than 10 for large heaps, which are greater than 32Mb. |
- int TimeMarkSweepWouldTakeInMs() { |
- // Rough estimate of how many megabytes of heap can be processed in 1 ms. |
- static const int kMbPerMs = 2; |
- |
- int heap_size_mb = static_cast<int>(SizeOfObjects() / MB); |
- return heap_size_mb / kMbPerMs; |
- } |
- |
- void AdvanceIdleIncrementalMarking(int idle_time_in_ms); |
+ void AdvanceIdleIncrementalMarking(intptr_t step_size); |
void ClearObjectStats(bool clear_last_time_stats = false); |
@@ -2004,13 +1982,8 @@ class Heap { |
IncrementalMarking incremental_marking_; |
- int number_idle_notifications_; |
- unsigned int last_idle_notification_gc_count_; |
- bool last_idle_notification_gc_count_init_; |
- |
- int mark_sweeps_since_idle_round_started_; |
+ GCIdleTimeHandler gc_idle_time_handler_; |
unsigned int gc_count_at_last_idle_gc_; |
- int scavenges_since_last_idle_round_; |
// These two counters are monotomically increasing and never reset. |
size_t full_codegen_bytes_generated_; |
@@ -2028,7 +2001,7 @@ class Heap { |
static const int kAllocationSiteScratchpadSize = 256; |
int allocation_sites_scratchpad_length_; |
- static const int kMaxMarkSweepsInIdleRound = 7; |
+ static const int kMaxMarkCompactsInIdleRound = 7; |
static const int kIdleScavengeThreshold = 5; |
// Shared state read by the scavenge collector and set by ScavengeObject. |