Rename kMaxFrameRenderingIdleTime to kMaxActiveIdleTime and adjust it to the currentl...
authorhpayer <hpayer@chromium.org>
Thu, 19 Mar 2015 19:41:02 +0000 (12:41 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 19 Mar 2015 19:41:19 +0000 (19:41 +0000)
BUG=468692
LOG=n

Review URL: https://codereview.chromium.org/1024543002

Cr-Commit-Position: refs/heads/master@{#27321}

src/heap/gc-idle-time-handler.cc
src/heap/gc-idle-time-handler.h
src/heap/heap.cc

index a1c9c7f23225a96280c98f914934c033146417ae..c74b46ea9b6d126b0770df551a830593198d63ef 100644 (file)
@@ -117,7 +117,7 @@ bool GCIdleTimeHandler::ShouldDoScavenge(
     size_t scavenge_speed_in_bytes_per_ms,
     size_t new_space_allocation_throughput_in_bytes_per_ms) {
   size_t new_space_allocation_limit =
-      kMaxFrameRenderingIdleTime * scavenge_speed_in_bytes_per_ms;
+      kMaxScheduledIdleTime * scavenge_speed_in_bytes_per_ms;
 
   // If the limit is larger than the new space size, then scavenging used to be
   // really fast. We can take advantage of the whole new space.
@@ -133,8 +133,7 @@ bool GCIdleTimeHandler::ShouldDoScavenge(
   } else {
     // We have to trigger scavenge before we reach the end of new space.
     new_space_allocation_limit -=
-        new_space_allocation_throughput_in_bytes_per_ms *
-        kMaxFrameRenderingIdleTime;
+        new_space_allocation_throughput_in_bytes_per_ms * kMaxScheduledIdleTime;
   }
 
   if (scavenge_speed_in_bytes_per_ms == 0) {
@@ -244,7 +243,7 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(double idle_time_in_ms,
       // can get rid of this special case and always start incremental marking.
       int remaining_mark_sweeps =
           kMaxMarkCompactsInIdleRound - mark_compacts_since_idle_round_started_;
-      if (static_cast<size_t>(idle_time_in_ms) > kMaxFrameRenderingIdleTime &&
+      if (static_cast<size_t>(idle_time_in_ms) > kMaxScheduledIdleTime &&
           (remaining_mark_sweeps <= 2 ||
            !heap_state.can_start_incremental_marking)) {
         return GCIdleTimeAction::FullGC();
index 3d2e304e623b62709053d5a80dc42943667132a2..6a39b78aaa2fcc24fd5210236f177bf0f9fffc14 100644 (file)
@@ -122,8 +122,9 @@ class GCIdleTimeHandler {
   // Number of scavenges that will trigger start of new idle round.
   static const int kIdleScavengeThreshold;
 
-  // That is the maximum idle time we will have during frame rendering.
-  static const size_t kMaxFrameRenderingIdleTime = 16;
+  // This is the maximum scheduled idle time. Note that it can be more than
+  // 16 ms when there is currently no rendering going on.
+  static const size_t kMaxScheduledIdleTime = 50;
 
   // If we haven't recorded any scavenger events yet, we use a conservative
   // lower bound for the scavenger speed.
index 66f98ced9816c26714e874e22b99d0232c87c53b..fd17774de2294df78cf5ea1e73a952b9fa3d6813 100644 (file)
@@ -4678,7 +4678,7 @@ bool Heap::IdleNotification(double deadline_in_seconds) {
 
 bool Heap::RecentIdleNotificationHappened() {
   return (last_idle_notification_time_ +
-          GCIdleTimeHandler::kMaxFrameRenderingIdleTime) >
+          GCIdleTimeHandler::kMaxScheduledIdleTime) >
          MonotonicallyIncreasingTimeInMs();
 }