Index: src/heap/gc-idle-time-handler.cc |
diff --git a/src/heap/gc-idle-time-handler.cc b/src/heap/gc-idle-time-handler.cc |
index ff2a559dd539dae2dc3ce3b1c09477243ba6f704..a1c9c7f23225a96280c98f914934c033146417ae 100644 |
--- a/src/heap/gc-idle-time-handler.cc |
+++ b/src/heap/gc-idle-time-handler.cc |
@@ -16,6 +16,7 @@ const size_t GCIdleTimeHandler::kMinTimeForFinalizeSweeping = 100; |
const int GCIdleTimeHandler::kMaxMarkCompactsInIdleRound = 7; |
const int GCIdleTimeHandler::kIdleScavengeThreshold = 5; |
const double GCIdleTimeHandler::kHighContextDisposalRate = 100; |
+const size_t GCIdleTimeHandler::kMinTimeForOverApproximatingWeakClosureInMs = 1; |
void GCIdleTimeAction::Print() { |
@@ -176,6 +177,13 @@ bool GCIdleTimeHandler::ShouldDoFinalIncrementalMarkCompact( |
} |
+bool GCIdleTimeHandler::ShouldDoOverApproximateWeakClosure( |
+ size_t idle_time_in_ms) { |
+ // TODO(jochen): Estimate the time it will take to build the object groups. |
+ return idle_time_in_ms >= kMinTimeForOverApproximatingWeakClosureInMs; |
+} |
+ |
+ |
// The following logic is implemented by the controller: |
// (1) If we don't have any idle time, do nothing, unless a context was |
// disposed, incremental marking is stopped, and the heap is small. Then do |