OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 #include <climits> | |
5 | |
6 #include "src/v8.h" | |
7 | 4 |
8 #include "src/heap/gc-idle-time-handler.h" | 5 #include "src/heap/gc-idle-time-handler.h" |
9 | 6 |
10 namespace v8 { | 7 namespace v8 { |
11 namespace internal { | 8 namespace internal { |
12 | 9 |
13 | 10 |
14 const double GCIdleTimeHandler::kConservativeTimeRatio = 0.9; | 11 const double GCIdleTimeHandler::kConservativeTimeRatio = 0.9; |
15 | 12 |
16 | 13 |
17 intptr_t GCIdleTimeHandler::EstimateMarkingStepSize( | 14 size_t GCIdleTimeHandler::EstimateMarkingStepSize( |
18 int idle_time_in_ms, intptr_t marking_speed_in_bytes_per_ms) { | 15 size_t idle_time_in_ms, size_t marking_speed_in_bytes_per_ms) { |
19 DCHECK(idle_time_in_ms > 0); | 16 DCHECK(idle_time_in_ms > 0); |
20 | 17 |
21 if (marking_speed_in_bytes_per_ms == 0) { | 18 if (marking_speed_in_bytes_per_ms == 0) { |
22 marking_speed_in_bytes_per_ms = | 19 marking_speed_in_bytes_per_ms = |
23 GCIdleTimeHandler::kInitialConservativeMarkingSpeed; | 20 GCIdleTimeHandler::kInitialConservativeMarkingSpeed; |
24 } | 21 } |
25 | 22 |
26 intptr_t marking_step_size = marking_speed_in_bytes_per_ms * idle_time_in_ms; | 23 size_t marking_step_size = marking_speed_in_bytes_per_ms * idle_time_in_ms; |
27 if (static_cast<intptr_t>(marking_step_size / idle_time_in_ms) != | 24 if (marking_step_size / marking_speed_in_bytes_per_ms != idle_time_in_ms) { |
28 marking_speed_in_bytes_per_ms) { | |
29 // In the case of an overflow we return maximum marking step size. | 25 // In the case of an overflow we return maximum marking step size. |
30 return INT_MAX; | 26 return GCIdleTimeHandler::kMaximumMarkingStepSize; |
31 } | 27 } |
32 | 28 |
33 return static_cast<intptr_t>(marking_step_size * | 29 if (marking_step_size > kMaximumMarkingStepSize) |
34 GCIdleTimeHandler::kConservativeTimeRatio); | 30 return kMaximumMarkingStepSize; |
| 31 |
| 32 return static_cast<size_t>(marking_step_size * |
| 33 GCIdleTimeHandler::kConservativeTimeRatio); |
35 } | 34 } |
36 } | 35 } |
37 } | 36 } |
OLD | NEW |