Chromium Code Reviews| Index: src/heap.cc |
| =================================================================== |
| --- src/heap.cc (revision 5792) |
| +++ src/heap.cc (working copy) |
| @@ -83,16 +83,19 @@ |
| intptr_t Heap::max_old_generation_size_ = 192*MB; |
| int Heap::initial_semispace_size_ = 128*KB; |
| intptr_t Heap::code_range_size_ = 0; |
| +intptr_t Heap::max_executable_size_ = max_old_generation_size_; |
| #elif defined(V8_TARGET_ARCH_X64) |
| int Heap::max_semispace_size_ = 16*MB; |
| intptr_t Heap::max_old_generation_size_ = 1*GB; |
| int Heap::initial_semispace_size_ = 1*MB; |
| intptr_t Heap::code_range_size_ = 512*MB; |
| +intptr_t Heap::max_executable_size_ = 256*MB; |
| #else |
| int Heap::max_semispace_size_ = 8*MB; |
| intptr_t Heap::max_old_generation_size_ = 512*MB; |
| int Heap::initial_semispace_size_ = 512*KB; |
| intptr_t Heap::code_range_size_ = 0; |
| +intptr_t Heap::max_executable_size_ = 128*MB; |
| #endif |
| // The snapshot semispace size will be the default semispace size if |
| @@ -172,7 +175,13 @@ |
| lo_space_->Size(); |
| } |
| +intptr_t Heap::CommittedMemoryExecutable() { |
| + if (!HasBeenSetup()) return 0; |
| + return MemoryAllocator::SizeExecutable(); |
| +} |
| + |
| + |
| intptr_t Heap::Available() { |
| if (!HasBeenSetup()) return 0; |
| @@ -4313,7 +4322,9 @@ |
| // TODO(1236194): Since the heap size is configurable on the command line |
| // and through the API, we should gracefully handle the case that the heap |
| // size is not big enough to fit all the initial objects. |
| -bool Heap::ConfigureHeap(int max_semispace_size, int max_old_gen_size) { |
| +bool Heap::ConfigureHeap(int max_semispace_size, |
| + int max_old_gen_size, |
| + int max_executable_size) { |
| if (HasBeenSetup()) return false; |
| if (max_semispace_size > 0) max_semispace_size_ = max_semispace_size; |
| @@ -4334,6 +4345,8 @@ |
| } |
| if (max_old_gen_size > 0) max_old_generation_size_ = max_old_gen_size; |
| + if (max_executable_size > 0) |
|
Mads Ager (chromium)
2010/11/10 08:14:24
Let's add braces here.
|
| + max_executable_size_ = RoundUp(max_executable_size_, Page::kPageSize); |
| // The new space size must be a power of two to support single-bit testing |
| // for containment. |
| @@ -4351,8 +4364,8 @@ |
| bool Heap::ConfigureHeapDefault() { |
| - return ConfigureHeap( |
| - FLAG_max_new_space_size * (KB / 2), FLAG_max_old_space_size * MB); |
| + return ConfigureHeap(FLAG_max_new_space_size / 2, FLAG_max_old_space_size, |
|
Mads Ager (chromium)
2010/11/10 08:32:29
Removing the units here and not changing flag-defi
|
| + FLAG_max_executable_size); |
| } |
| @@ -4435,7 +4448,7 @@ |
| // space. The chunk is double the size of the requested reserved |
| // new space size to ensure that we can find a pair of semispaces that |
| // are contiguous and aligned to their size. |
| - if (!MemoryAllocator::Setup(MaxReserved())) return false; |
| + if (!MemoryAllocator::Setup(MaxReserved(), MaxExecutableSize())) return false; |
| void* chunk = |
| MemoryAllocator::ReserveInitialChunk(4 * reserved_semispace_size_); |
| if (chunk == NULL) return false; |