Tweak default max heap size constants for platforms with swap.
Configure platforms with swap memory with larger heap size by default. Also introduce an additional "bucket" between 1GB-2GBs. BUG=None R=hpayer@chromium.org, jkummerow@chromium.org Review URL: https://codereview.chromium.org/24978006 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
81e4550796
commit
a6eb65983d
@ -33,6 +33,14 @@
|
||||
|
||||
namespace v8 {
|
||||
|
||||
|
||||
#if V8_OS_ANDROID
|
||||
const bool kOsHasSwap = false;
|
||||
#else
|
||||
const bool kOsHasSwap = true;
|
||||
#endif
|
||||
|
||||
|
||||
bool ConfigureResourceConstraintsForCurrentPlatform(
|
||||
ResourceConstraints* constraints) {
|
||||
if (constraints == NULL) {
|
||||
@ -44,18 +52,22 @@ bool ConfigureResourceConstraintsForCurrentPlatform(
|
||||
|
||||
// The young_space_size should be a power of 2 and old_generation_size should
|
||||
// be a multiple of Page::kPageSize.
|
||||
if (physical_memory > 2ul * i::GB) {
|
||||
if (physical_memory <= 512ul * i::MB) {
|
||||
constraints->set_max_young_space_size(2 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(128 * lump_of_memory);
|
||||
constraints->set_max_executable_size(96 * lump_of_memory);
|
||||
} else if (physical_memory <= (kOsHasSwap ? 768ul * i::MB : 1ul * i::GB)) {
|
||||
constraints->set_max_young_space_size(8 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(256 * lump_of_memory);
|
||||
constraints->set_max_executable_size(192 * lump_of_memory);
|
||||
} else if (physical_memory <= (kOsHasSwap ? 1ul * i::GB : 2ul * i::GB)) {
|
||||
constraints->set_max_young_space_size(16 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(512 * lump_of_memory);
|
||||
constraints->set_max_executable_size(256 * lump_of_memory);
|
||||
} else {
|
||||
constraints->set_max_young_space_size(16 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(700 * lump_of_memory);
|
||||
constraints->set_max_executable_size(256 * lump_of_memory);
|
||||
} else if (physical_memory > 512ul * i::MB) {
|
||||
constraints->set_max_young_space_size(8 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(192 * lump_of_memory);
|
||||
constraints->set_max_executable_size(192 * lump_of_memory);
|
||||
} else /* (physical_memory <= 512GB) */ {
|
||||
constraints->set_max_young_space_size(2 * lump_of_memory);
|
||||
constraints->set_max_old_space_size(96 * lump_of_memory);
|
||||
constraints->set_max_executable_size(96 * lump_of_memory);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -68,4 +80,4 @@ bool SetDefaultResourceConstraintsForCurrentPlatform() {
|
||||
return SetResourceConstraints(&constraints);
|
||||
}
|
||||
|
||||
} // namespace v8::internal
|
||||
} // namespace v8
|
||||
|
Loading…
Reference in New Issue
Block a user