Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1159)

Side by Side Diff: src/api.cc

Issue 2942543002: [heap] Allow a minimum semi-space size of 512K. (Closed)
Patch Set: test Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 4
5 #include "src/api.h" 5 #include "src/api.h"
6 6
7 #include <string.h> // For memcpy, strlen. 7 #include <string.h> // For memcpy, strlen.
8 #ifdef V8_USE_ADDRESS_SANITIZER 8 #ifdef V8_USE_ADDRESS_SANITIZER
9 #include <sanitizer/asan_interface.h> 9 #include <sanitizer/asan_interface.h>
10 #endif // V8_USE_ADDRESS_SANITIZER 10 #endif // V8_USE_ADDRESS_SANITIZER
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 source_length : 874 source_length :
875 (source ? static_cast<int>(strlen(source)) : 0)), 875 (source ? static_cast<int>(strlen(source)) : 0)),
876 source_(source, source_length_), 876 source_(source, source_length_),
877 dep_count_(dep_count), 877 dep_count_(dep_count),
878 deps_(deps), 878 deps_(deps),
879 auto_enable_(false) { 879 auto_enable_(false) {
880 CHECK(source != NULL || source_length_ == 0); 880 CHECK(source != NULL || source_length_ == 0);
881 } 881 }
882 882
883 ResourceConstraints::ResourceConstraints() 883 ResourceConstraints::ResourceConstraints()
884 : max_semi_space_size_(0), 884 : max_semi_space_size_in_kb_(0),
885 max_old_space_size_(0), 885 max_old_space_size_(0),
886 stack_limit_(NULL), 886 stack_limit_(NULL),
887 code_range_size_(0), 887 code_range_size_(0),
888 max_zone_pool_size_(0) {} 888 max_zone_pool_size_(0) {}
889 889
890 void ResourceConstraints::ConfigureDefaults(uint64_t physical_memory, 890 void ResourceConstraints::ConfigureDefaults(uint64_t physical_memory,
891 uint64_t virtual_memory_limit) { 891 uint64_t virtual_memory_limit) {
892 set_max_semi_space_size( 892 set_max_semi_space_size_in_kb(
893 static_cast<int>(i::Heap::ComputeMaxSemiSpaceSize(physical_memory))); 893 static_cast<int>(i::Heap::ComputeMaxSemiSpaceSize(physical_memory)));
894 set_max_old_space_size( 894 set_max_old_space_size(
895 static_cast<int>(i::Heap::ComputeMaxOldGenerationSize(physical_memory))); 895 static_cast<int>(i::Heap::ComputeMaxOldGenerationSize(physical_memory)));
896 set_max_zone_pool_size(i::AccountingAllocator::kMaxPoolSize); 896 set_max_zone_pool_size(i::AccountingAllocator::kMaxPoolSize);
897 897
898 if (virtual_memory_limit > 0 && i::kRequiresCodeRange) { 898 if (virtual_memory_limit > 0 && i::kRequiresCodeRange) {
899 // Reserve no more than 1/8 of the memory for the code range, but at most 899 // Reserve no more than 1/8 of the memory for the code range, but at most
900 // kMaximalCodeRangeSize. 900 // kMaximalCodeRangeSize.
901 set_code_range_size( 901 set_code_range_size(
902 i::Min(i::kMaximalCodeRangeSize / i::MB, 902 i::Min(i::kMaximalCodeRangeSize / i::MB,
903 static_cast<size_t>((virtual_memory_limit >> 3) / i::MB))); 903 static_cast<size_t>((virtual_memory_limit >> 3) / i::MB)));
904 } 904 }
905 } 905 }
906 906
907 void SetResourceConstraints(i::Isolate* isolate, 907 void SetResourceConstraints(i::Isolate* isolate,
908 const ResourceConstraints& constraints) { 908 const ResourceConstraints& constraints) {
909 int semi_space_size = constraints.max_semi_space_size(); 909 int semi_space_size = constraints.max_semi_space_size_in_kb();
910 int old_space_size = constraints.max_old_space_size(); 910 int old_space_size = constraints.max_old_space_size();
911 size_t code_range_size = constraints.code_range_size(); 911 size_t code_range_size = constraints.code_range_size();
912 size_t max_pool_size = constraints.max_zone_pool_size(); 912 size_t max_pool_size = constraints.max_zone_pool_size();
913 if (semi_space_size != 0 || old_space_size != 0 || code_range_size != 0) { 913 if (semi_space_size != 0 || old_space_size != 0 || code_range_size != 0) {
914 isolate->heap()->ConfigureHeap(semi_space_size, old_space_size, 914 isolate->heap()->ConfigureHeap(semi_space_size, old_space_size,
915 code_range_size); 915 code_range_size);
916 } 916 }
917 isolate->allocator()->ConfigureSegmentPool(max_pool_size); 917 isolate->allocator()->ConfigureSegmentPool(max_pool_size);
918 918
919 if (constraints.stack_limit() != NULL) { 919 if (constraints.stack_limit() != NULL) {
(...skipping 9621 matching lines...) Expand 10 before | Expand all | Expand 10 after
10541 Address callback_address = 10541 Address callback_address =
10542 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 10542 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
10543 VMState<EXTERNAL> state(isolate); 10543 VMState<EXTERNAL> state(isolate);
10544 ExternalCallbackScope call_scope(isolate, callback_address); 10544 ExternalCallbackScope call_scope(isolate, callback_address);
10545 callback(info); 10545 callback(info);
10546 } 10546 }
10547 10547
10548 10548
10549 } // namespace internal 10549 } // namespace internal
10550 } // namespace v8 10550 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698