Commit 7a410e73 authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

heap: Be more conservative when delaying finalization

When delaying finalization we considered the maximum of the current time
to task and the recorded average. In case there's no recorded average
the GC would consider the current time to task as estimate which is too
aggresive as V8 may never get a task executed.

Be fully conservative about recorded task times and bail out in such
cases.

Bug: chromium:1049957
Change-Id: Ibaac242f72459341a170af80e63fb2266f91b0eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043809
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66196}
parent 83dfd058
...@@ -790,6 +790,7 @@ double IncrementalMarking::CurrentTimeToMarkingTask() const { ...@@ -790,6 +790,7 @@ double IncrementalMarking::CurrentTimeToMarkingTask() const {
heap_->tracer()->AverageTimeToIncrementalMarkingTask(); heap_->tracer()->AverageTimeToIncrementalMarkingTask();
const double current_time_to_marking_task = const double current_time_to_marking_task =
incremental_marking_job_.CurrentTimeToTask(heap_); incremental_marking_job_.CurrentTimeToTask(heap_);
if (recorded_time_to_marking_task == 0.0) return 0.0;
return Max(recorded_time_to_marking_task, current_time_to_marking_task); return Max(recorded_time_to_marking_task, current_time_to_marking_task);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment