5 #ifndef V8_HEAP_HEAP_CONTROLLER_H_ 6 #define V8_HEAP_HEAP_CONTROLLER_H_ 9 #include "src/allocation.h" 10 #include "src/heap/heap.h" 11 #include "testing/gtest/include/gtest/gtest_prod.h" 19 double max_growing_factor,
20 double conservative_growing_factor,
21 double target_mutator_utilization)
23 min_growing_factor_(min_growing_factor),
24 max_growing_factor_(max_growing_factor),
25 conservative_growing_factor_(conservative_growing_factor),
26 target_mutator_utilization_(target_mutator_utilization) {}
30 size_t CalculateAllocationLimit(
size_t curr_size,
size_t max_size,
31 double max_factor,
double gc_speed,
33 size_t new_space_capacity,
34 Heap::HeapGrowingMode growing_mode);
37 size_t MinimumAllocationLimitGrowingStep(Heap::HeapGrowingMode growing_mode);
40 double GrowingFactor(
double gc_speed,
double mutator_speed,
42 virtual const char* ControllerName() = 0;
45 const double min_growing_factor_;
46 const double max_growing_factor_;
47 const double conservative_growing_factor_;
48 const double target_mutator_utilization_;
50 FRIEND_TEST(HeapControllerTest, HeapGrowingFactor);
51 FRIEND_TEST(HeapControllerTest, MaxHeapGrowingFactor);
52 FRIEND_TEST(HeapControllerTest, MaxOldGenerationSize);
53 FRIEND_TEST(HeapControllerTest, OldGenerationAllocationLimit);
59 static constexpr
size_t kMinSize = 128 * Heap::kPointerMultiplier;
60 static constexpr
size_t kMaxSize = 1024 * Heap::kPointerMultiplier;
64 double MaxGrowingFactor(
size_t curr_max_size);
67 const char* ControllerName()
override {
return "HeapController"; }
73 #endif // V8_HEAP_HEAP_CONTROLLER_H_