| Index: src/heap.h
|
| diff --git a/src/heap.h b/src/heap.h
|
| index 1f7526e71a58e146706c9b6922ab40c25164e457..ee8b6ff5fc07f0d8b6e17bf8e7768cb1455cf3cc 100644
|
| --- a/src/heap.h
|
| +++ b/src/heap.h
|
| @@ -1518,9 +1518,28 @@ class Heap {
|
| static const intptr_t kMinimumOldGenerationAllocationLimit =
|
| 8 * (Page::kPageSize > MB ? Page::kPageSize : MB);
|
|
|
| + // The new space size has to be a power of 2.
|
| + static const int kMaxNewSpaceSizeLowMemoryDevice = 2;
|
| + static const int kMaxNewSpaceSizeMediumMemoryDevice = 8;
|
| + static const int kMaxNewSpaceSizeHighMemoryDevice = 16;
|
| + static const int kMaxNewSpaceSizeHugeMemoryDevice = 16;
|
| +
|
| + // The old space size has to be a multiple of Page::kPageSize.
|
| + static const int kMaxOldSpaceSizeLowMemoryDevice = 128;
|
| + static const int kMaxOldSpaceSizeMediumMemoryDevice = 256;
|
| + static const int kMaxOldSpaceSizeHighMemoryDevice = 512;
|
| + static const int kMaxOldSpaceSizeHugeMemoryDevice = 700;
|
| +
|
| + // The executable size has to be a multiple of Page::kPageSize.
|
| + static const int kMaxExecutableSizeLowMemoryDevice = 128;
|
| + static const int kMaxExecutableSizeMediumMemoryDevice = 256;
|
| + static const int kMaxExecutableSizeHighMemoryDevice = 512;
|
| + static const int kMaxExecutableSizeHugeMemoryDevice = 700;
|
| +
|
| intptr_t OldGenerationAllocationLimit(intptr_t old_gen_size) {
|
| - intptr_t limit = FLAG_stress_compaction ?
|
| - old_gen_size + old_gen_size / 10 : old_gen_size * 4;
|
| + intptr_t limit = FLAG_stress_compaction
|
| + ? old_gen_size + old_gen_size / 10
|
| + : old_gen_size * old_space_growing_factor_;
|
| limit = Max(limit, kMinimumOldGenerationAllocationLimit);
|
| limit += new_space_.Capacity();
|
| intptr_t halfway_to_the_max = (old_gen_size + max_old_generation_size_) / 2;
|
| @@ -1886,6 +1905,11 @@ class Heap {
|
| intptr_t max_executable_size_;
|
| intptr_t maximum_committed_;
|
|
|
| + // The old space growing factor is used in the old space heap growing
|
| + // strategy. The new old space size is the current old space size times
|
| + // old_space_growing_factor_.
|
| + int old_space_growing_factor_;
|
| +
|
| // For keeping track of how much data has survived
|
| // scavenge since last new space expansion.
|
| int survived_since_last_expansion_;
|
|
|